When should I use UDP instead of TCP?

Answer Posted / chaitanya

UDP is good for sending messages from one system to another when the order isn't important and you don't need all of the messages to get to the other machine. This is why I've only used UDP once to write the example code for the faq. Usually TCP is a better solution. It saves you having to write code to ensure that messages make it to the desired destination, or to ensure the message ordering. Keep in mind that every additional line of code you add to your project in another line that could contain a potentially expensive bug.

If you find that TCP is too slow for your needs you may be able to get better performance with UDP so long as you are willing to sacrifice message order and/or reliability.

UDP must be used to multicast messages to more than one other machine at the same time. With TCP an application would have to open separate connections to each of the destination machines and send the message once to each target machine. This limits your application to only communicate with machines that it already knows about.

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What does af mean in sockets?

528


How can I tell when a socket is closed on the other end?

975


What is the difference between read() and recv()?

1598


What is a socket api?

535


What is difference between socket () and serversocket () class?

495






Why sockets are used?

527


How can I set the timeout for the connect() system call?

1117


How is a socket created?

511


How do I convert a string into an internet address?

910


What's the difference between impact sockets and regular sockets?

476


How does unix socket work?

508


What is the difference between SO_REUSEADDR and SO_REUSEPORT?

1358


What is a socket address?

528


Can a single socket port be used for multiple applications?

458


How can I force a socket to send the data in its buffer?

1101