Referring to UDP. Some would suggest that having a single port (and thus bound socket) per client, as seen in eg. Quake III, would be better for buffering incoming streams. I'm not entirely sure I buy this.
Isn't it after all down to one's own code to make sure that the contents of those buffers are constantly consumed? On my server, I plan to do this about 20-30 times a second, and if my clients are pushing out packets at that same rate, I can't see how buffering would be a problem. FWIW, my packets will be up to 1024 bytes in length. I'd have 4 or at most, 8 clients. I understand from a number of sources (eg. this answer) that the default buffer size on Windows is 8k. So with 4 clients, this should typically be okay, to my mind... though I guess I might need to up the buffer size somewhat, and am not sure if there are any pitfalls to that, though I'm aware this is done via setsockopt()
.