How can I be sure that a UDP message is received?
You have to design your protocol to expect a confirmation back from
the destination when a message is received. Of course is the
confirmation is sent by UDP, then it too is unreliable and may not
make it back to the sender. If the sender does not get confirmation
back by a certain time, it will have to re-transmit the message, maybe
more than once. Now the receiver has a problem because it may have
already received the message, so some way of dropping duplicates is
required. Most protocols use a message numbering scheme so that the
receiver can tell that it has already processed this message and
return another confirmation. Confirmations will also have to
reference the message number so that the sender can tell which message
is being confirmed. Confused? That's why I stick with TCP.