When should I use UDP instead of TCP?

  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.

Suggest a Site