On Mon, 2015-09-21, Cameron Simpson wrote: > On 21Sep2015 10:34, Chris Angelico <ros...@gmail.com> wrote: >>If you're going to add sequencing and acknowledgements to UDP, >>wouldn't it be easier to use TCP and simply prefix every message with >>a two-byte length? > > Frankly, often yes. That's what I do. (different length encoding, but > otherwise...) > > UDP's neat if you do not care if a packet fails to arrive and if you can > guarentee that your data fits in a packet in the face of different MTUs.
There's also the impact on your application. With TCP you need to consider that you may block when reading or writing, and you'll be using threads and/or a state machine driven by select() or something. UDP is more fire-and-forget. > I like TCP myself, most of the time. Another nice thing about TCP is that wil > a > little effort you get to pack multiple data packets (or partial data packets) > into a network packet, etc. That, and also (again) the impact on the application. With UDP you can easily end up wasting a lot of time reading tiny datagrams one by one. It has often been a performance bottleneck for me, with certain UDP-based protocols which cannot pack multiple application-level messages into one datagram. Although perhaps you tend not to use Python in those situations. /Jorgen -- // Jorgen Grahn <grahn@ Oo o. . . \X/ snipabacken.se> O o . -- https://mail.python.org/mailman/listinfo/python-list