-2

So anywhere I read anything about UDP, people say this;

  1. Messages can be received out of order
  2. It's possible a message never arrives at all

The first one isn't clear to me. This is what can happen with TCP:

I send 1234, client receives 12 and then 34

So no problem; just prepend the message length and it's all good. After all, an integer is always 4 bytes, so even if the client receives the prepended length in 2 goes, it will know to keep reading until it has at least 4 bytes to know the msg length.

Anyway, back to UDP, what's the deal now when people say 'packages can be received out of order'?

A) Send `1234`, client receives `34` and then `12`
B) Send `1234` and `5678`, client receives `5678` and then `1234`

If it's A, I don't see how I can make UDP work for me at all. How would the client ever know what's what?

4

2 に答える 2