ต่อไปจะเป็นตัวอย่างโปรแกรม UDP ที่เขียนด้วยภาษาจาวาซึ่งจะทำหน้าที่เป็น server โดยที่จะรับข้อความจาก client และตอบกลับไปยัง client ซึ่งโปรแกรมจะมีความแตกต่างกับโปรแกรมแบบ TCP
ในโปรแกรมนี้จะต้องมีการดักจับความผิดพลาดคือ IOException ใน main แทนด้วย SocketException
ตัวอย่างโค้ด
[sourcecode language=”java”]
import java.io.*;
import java.net.*;
public class UDPEchoServer
{
private static final int PORT = 1234;
private static DatagramSocket datagramSocket;
private static DatagramPacket inPacket, outPacket;
private static byte[] buffer;
public static void main(String[] args)
{
System.out.println(“Opening port…\n”);
try
{
datagramSocket =new DatagramSocket(PORT); //Step 1.
}
catch(SocketException sockEx)
{
System.out.println(“Unable to attach to port!”);
System.exit(1);
}
handleClient();
}
private static void handleClient()
{
try
{
String messageIn,messageOut;
int numMessages = 0;
do
{
buffer = new byte[256]; //Step 2.
inPacket =new DatagramPacket(buffer, buffer.length); //Step3.
datagramSocket.receive(inPacket);//Step 4.
InetAddress clientAddress =inPacket.getAddress(); //Step 5.
int clientPort =inPacket.getPort(); //Step 5.
messageIn =new String(inPacket.getData(),0,inPacket.getLength());
//Step 6.
System.out.println(“Message received.”);
numMessages++;
messageOut = “Message ” + numMessages+ “: ” + messageIn;
outPacket =new DatagramPacket(messageOut.getBytes(),
messageOut.length(),clientAddress,clientPort); //Step 7.
datagramSocket.send(outPacket); //Step 8.
}while (true);
}
catch(IOException ioEx)
{
ioEx.printStackTrace();
}
finally //If exception thrown, close connection.
{
System.out.println(“\n* Closing connection… *”);
datagramSocket.close(); //Step 9.
}
}
}
[/sourcecode]
ซึ่งนี้ก็เป็นตัวอย่างโปรแกรมจาวา ซึ่ง UDP นั้นจะไม่มีการเชื่อมจริงระหว่าง server กับ client เหมือนกับการส่งจดหมายแต่ TCP นั้นจะเป็นการส่งที่มีการเชื่อมต่อ เหมือนกับโทรศัพท์