select.select and socket.setblocking
Scott David Daniels
Scott.Daniels at Acm.Org
Wed Dec 31 14:12:40 EST 2008
Jean-Paul Calderone wrote:
> ...
> On a LAN, it's likely that you'll generally get the exact number of bytes
> which the sender passed to one call of send (until the sender starts to
> pass really huge strings to send, then it'll get split up) just because
> the network has lots of capacity compared to the traffic you're putting
> on it. However, even on a LAN it's not guaranteed, and on the internet,
> it's extremely likely that this won't happen most of the time.
I don't mean to rebut your point here,rather to "pile on" with a bit
more information.
One point I haven't seen mentioned in this discussion is that nodes in
the internet that carry the TCP/IP traffic are allowed to, for their own
purposes, break large packets up into several smaller packets, and
combine several smaller packets into a single larger packet. So, no
matter how your TCP/IP packets leave your machine, there is no guarantee
they will reach the destination in the same clumps. It is the stream,
and not the packets, that is provided by TCP/IP.
--Scott David Daniels
Scott.Daniels at Acm.Org
More information about the Python-list
mailing list