Re: Reading text lines from a socket

From: Sandip Bhattacharya (sandip_at_linux-delhi.org)
Date: 02/29/04


Date: Sun, 29 Feb 2004 05:49:36 +0530
To: python-list@python.org


[Reposting to the general list too]

Lloyd Kvam wrote:
> Sockets deal with packetized data. The network protocols do not guarantee
> keeping the data in line oriented chunks - even if the data starts out
> that way.
>
> You need to deal with extracting lines from chunks. So long as the
> connection is
> working properly, this is easy. The challenge occurs when the remainder
> of a line
> never gets delivered. The best strategy depends upon the details of
> what you are
> doing.

I understand that. In Python using sockets is like using sockets in C.

However, I was looking for a python equivalent of the perl idiom of
opening a socket and getting a file handle ... and then reading this
file handle as any other line oriented file using $socket->readline

I am trying to write a simple Netcraft style script which tries the HEAD
method on a webserver and reads the Server: header from the response. I
would not like to use urllib, because even a call to something like
urllib.info() reads in the complete webpage on an open().

Even if this particular problem could be done elegantly, I would be
interested to know the answer to my original question because the
feature of reading a line at a time from a socket will help me in a lot
of other places in the future.

- Sandip

-- 
Sandip Bhattacharya
sandip (at) puroga.com
Puroga Technologies Pvt. Ltd.
Work: http://www.puroga.com        Home: http://www.sandipb.net
GPG: 51A4 6C57 4BC6 8C82 6A65 AE78 B1A1 2280 A129 0FF3


Relevant Pages

  • Socket leak (Was: Re: What triggers "No Buffer Space) Available"?
    ... I'm trying to probe this as well as I can, but network stacks and sockets have ... as far as netstat -nA shows? ... again, if I'm reading this right, there is no 'referencing process' ... ...
    (freebsd-stable)
  • Re: Thread safety techniques for server applications?
    ... Note also that sometimes if you are reading from TCPSockets the sockets ... I still haven't ever found a fix for the problem of defining methods in ...
    (comp.lang.ruby)
  • Re: UDP recvmsg blocks after select(), 2.6 bug?
    ... A million things might happen between selectand recvmsg(), ... > not useful if you expect to bypass the blocking through select. ... A socket is ready for reading if any of the following four conditions ... He's not saying this is specific to either UDP or TCP sockets nor blocking ...
    (Linux-Kernel)
  • Re: C# remoting vs Socket ?
    ... remoting is NOT suitable for real world applications. ... Go with sockets. ... Good reading: ...
    (microsoft.public.dotnet.framework.remoting)
  • sockets and streams and sbcl
    ... I have a rather SBCL specific question on reading and writing from ... sockets. ... I've been trying to figure out how to receive a connection from telnet ... that it is not a character output stream. ...
    (comp.lang.lisp)