UDP İstemci
TCP gibi UDP servisine de soketler üzerinden giriş sağlanır. UDP servisine giriş yapabilmek için bir veri paketi soketi elemanı oluşturulur. DatagramSocket tercihe bağlı olarak soketi bağlayacak bir kapı numarasını kabul eder. Eğer kapı numarası belirtilmemişse işletim sistemi boşta olan bir kapı numarasını yeni oluşturulan sokete atar. Genellikle istemci uygulamalar soket yaratırken kapı numarası belirtmezler. Bir veri paketi soketi şu şekilde oluşturulabilir:
DatagramSocket clientSocket = new DatagramSocket();
Tek bir soket üzerinden birbirinden farklı ağ uygulamalarından paket almak ve onlara paket göndermek olanaklıdır. Bu sebeple bir ileti gönderilirken iletinin varış noktası da belirtilmiş olmalıdır. İletiler bir soket üzerinden gönderilmek üzere veri paketleri (DatagramPacket) içinde sıkıştırılmalıdır. Ayrıca paket mesajın iletileceği adresi ve kapı numarasını da içermelidir. Dolayısıyla basit bir ileti hostName ile belirtilen sunucu üzerinde çalışan bir uygulamaya port ile belirtilen kapı numarası üzerinden aşağıdaki şekilde gönderilebilir:
String request = "hello world!"; 
byte msg[] = request.getBytes(); 
InetAddress address = InetAddress.getByName(hostName); 
DatagramPacket packet = new DatagramPacket(msg, 
                           msg.length, adress, port); 
clientSocket.send(packet);
Diğer uygulamalardan ileti almak için DatagramSocket'a ait receive() yöntemi kullanılabilir. receive() yöntemi gelen paket için bir yer tutucuya gereksinim duyar. Bu nedenle yeni DatagramPacket elemanı yaratılıp receive() yöntemine parametre olarak verilmelidir:
byte msg[] = new char[1024];
DatagramPacket packet = new DatagramPacket(msg, msg.length);
clientSocket.receive(packet);
Not: receive() yöntemi uygulamaya bir datagram ulaşana kadar engelleme yapar. Engellemeyi önlemek için DatagramSocket'e ait setSoTimeout(timeout) yöntemi kullanılabilir. Eğer ara süresince hiç bir datagram gelmezse yöntem geri döner ve SocketTimeoutException istisnası ortaya çıkar.