Some applications that you write to communicate over the network will not require the reliable, point-to-point channel provided by TCP. Rather, your applications might benefit from a mode of communication that delivers independent packages of information whose arrival and order of arrival are not guaranteed.
The UDP protocol provides a mode of network communication whereby applications send packets of data, called datagrams, to one another. A datagram is an independent, self-contained message sent over the network whose arrival, arrival time, and content are not guaranteed. The
DatagramSocketclasses in the
java.netpackage implement system-independent datagram communication using UDP.
What Is a Datagram?A datagram is an independent, self-contained message sent over the network whose arrival, arrival time, and content are not guaranteed.
Writing a Datagram Client and ServerThis section walks you through an example that contains two Java programs that use datagrams to communicate. The server side is a quote server that listens to its
DatagramSocketand sends a quotation to a client whenever the client requests it. The client side is a simple program that simply makes a request of the server.
Broadcasting to Multiple RecipientsThis section modifies the quote server so that instead of sending a quotation to a single client upon request, the quote server broadcasts a quote every minute to as many clients as are listening. The client program must be modified accordingly.
Note: Many firewalls and routers are configured not to allow UDP packets. If you have trouble connecting to a service outside your firewall, or if clients have trouble connecting to your service, ask your system administrator if UDP is permitted.