strange sockets
Skink
spam at me.please
Mon Nov 7 02:28:54 EST 2005
Bryan,
>
> Sion Arrowsmith is right about what causes the delay.
> Just in case your real code looks like this, I'll note:
>
>> len, = struct.unpack("!i", s.recv(4))
>> data = s.recv(len)
yes, my mistake ;)
>
>
> First, you almost certainly don't want to use the name 'len'.
> Ought not to be allowed. Second, recv can return fewer bytes
> than requested, even when the connection is still open for
> reading. You might replace the lines above with (untested):
>
> length = struct.unpack("!i", s.recv(4))
> data = []
> while length:
> data.append(s.recv(length))
> length -= len(data[-1])
> data = ''.join(data)
>
>
i know, i know, i sent fake python client: the real will be done in java.
> There's still a robustness problem, but in the absense of errors
> and malice, that should work. I think.
>
>
More information about the Python-list
mailing list