To create an application that uses UDP to establish the connection between a client and server, we need to perform the following steps:
- Create a server program
- Create a client program
- Execute the client and server program
Let’s perform the steps in the following subsections:
Creating the Server Program
Let’s create the server class, named UDPServerEx which takes messages from a user and sends the messages (datagrams) to the clients. Listing 1 shows the code of the UDPServerEx.java file:
Filename: UDPServerEx.java
Java
// A server that sends messages to the clientimport java.net.*;class UDPServerEx { public static DatagramSocket mySocket; public static byte myBuffer[] = new byte[2000]; public static void serverMethod() throws Exception { int position = 0; while (true) { int charData = System.in.read(); switch (charData) { case -1: System.out.println( "The execution of " + "the server has been terminated"); return; case '\r': break; case '\n': mySocket.send( new DatagramPacket( myBuffer, position, InetAddress.getLocalHost(), 777)); position = 0; break; default: myBuffer[position++] = (byte)charData; } } } public static void main(String args[]) throws Exception { System.out.println("Please enter some text here"); mySocket = new DatagramSocket(888); serverMethod(); }} |
To compile the UDPServerEx.java file:
D:\UDPExample>javac UDPServerEx.java
Note: The path may vary according to where you save file.
Creating the ClientProgram
Let’s create a client class, named UDPClient, which accepts the messages sent from the server, UDPServerEx class. The client then displays the messages received in the Command Prompt. Listing 2 shows the code of the UDPClient.java file:
Filename: UDPClient.java
Java
// UDPClient that receives and// displays messages sent from the serverimport java.net.*;class UDPClient { public static DatagramSocket mySocket; public static byte myBuffer[] = new byte[2000]; public static void clientMethod() throws Exception { while (true) { DatagramPacket dataPacket = new DatagramPacket(myBuffer, myBuffer.length); mySocket.receive(dataPacket); System.out.println("Message Received :"); System.out.println( new String( dataPacket.getData(), 0, dataPacket.getLength())); } } public static void main(String args[]) throws Exception { System.out.println( "You need to press CTRL+C" + " in order to quit."); mySocket = new DatagramSocket(777); clientMethod(); }} |
Use the following command to compile the UDPClient.java file:
D:\UDPExample>javac UDPClient.java
Output
Note: To execute the UDPServerEx and UDPClient classes, run the UDPServerEx.java and UDPClient.java in two separate Command Prompt windows. Remember, the UDPServerEx class is executed before the UDPClient class. Figure 1 shows the output of the UDP Server java and UDPClient.java files:

