Sockets: Sending/receiving arbitrary amounts of data
Greg Ewing
see at my.signature
Tue May 1 01:46:04 EDT 2001
Neil Schemenauer wrote:
>
> s = sock.recv(size)
> if len(s) != size:
> raise IOError, "short netstring read"
That's not quite right, either, because sock.recv(size)
may return before all size bytes have arrived. You
need to put it in a loop, something like
s = ""
while len(s) < size:
s1 = sock.recv(size - len(s))
if s1 == "":
raise IOError, "unexpected EOF on socket"
s = s + s1
--
Greg Ewing, Computer Science Dept, University of Canterbury,
Christchurch, New Zealand
To get my email address, please visit my web page:
http://www.cosc.canterbury.ac.nz/~greg
More information about the Python-list
mailing list