 <p>You can use UDP to multiple servers with the same socket. Probably the simplest way to do it is to have the client assign a session ID to each connection, include the session ID in each datagram it sends, and have the server return that session ID in each reply datagram it sends. Don't use the IP address to distinguish which server the packet is from because a server can have more than one IP address, making it unreliable.</p> <p>Just remember that if you use UDP, you don't get any of the things TCP adds. If you need any of them, you need to do them yourself. If you need all or most of them, TCP is a <em>much</em> better choice. TCP does:</p> <ul> <li><p>Session establishment</p></li> <li><p>Session teardown</p></li> <li><p>Retransmissions</p></li> <li><p>Transmit pacing</p></li> <li><p>Backoff and retry</p></li> <li><p>Out of order detection and rearrangement</p></li> <li><p>Sliding windows</p></li> <li><p>Acknowledgments</p></li> </ul> <p>If you need any of these things and choose to use UDP, you need to do them yourself.</p>