[EMAIL PROTECTED] wrote: > Steve, > > To your question of why you'd ever receive value: > > This is very common in any network programming. If you send a packet > of data that has a header and payload, and the header contains the > length (N) of the payload, then at some point you have to receive N > bytes. If N is zero, then you receive 0 bytes. Of course, you CAN > test for N == 0, that's obvious - but why would you if the underlying > layers worked correctly? Its just extra code to handle an special case. > I understand all that, but you are presumably also aware that a zero-length result from recv() indicates that the other party to a TCP connection has closed their end of the socket?
Given that information, it's hard to know why you would ever really want to recv(0), since the presumably empty return string would effectively prohibit you form detecting that condition. So I'd suggest a test for a requirement of zero bytes, with a corresponding skip of the recv() call in those cases, at least for TCP. regards Steve -- Steve Holden +44 150 684 7255 +1 800 494 3119 Holden Web LLC www.holdenweb.com PyCon TX 2006 www.python.org/pycon/ -- http://mail.python.org/mailman/listinfo/python-list