On Mon, Dec 16, 2013 at 2:51 AM, Roy Smith <r...@panix.com> wrote: > In article <l8kh1r$bj8$1...@reader1.panix.com>, > Grant Edwards <invalid@invalid.invalid> wrote: > >> UDP is a a _datagram_ service. Either all the bytes in a write() >> should get sent or none of them. Sending a paritial datagram is _not_ >> a valid option. > > I would agree with the above if you said send() instead of write(). > Python socket objects don't have write() methods, file objects do. You > can wrap a file around a socket with socket.makefile(), but I'm not sure > I would expect the UDP record boundary semantics to be honored once you > did that.
The underlying C API allows you, on Unix-like systems at least, to use the standard write() function to send UDP packets (as long as you first connect() - otherwise you need sendto() to specify a destination). I don't usually use that method, but I would expect that one call to write() becomes one UDP packet. How that works with socket.makefile() in Python I have no idea. ChrisA -- https://mail.python.org/mailman/listinfo/python-list