Mar 062013
 

Sample UDP Client Server

Assalamu’ alaikum wr wb

User Datagram Protocol (UDP), adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768.

Oke mari langsung saja kita tulis script nya untuk sisi server

import java.io.*;
import java.net.*;

class UDPServer
{
 public static void main(String args[]) throws Exception
 {
 DatagramSocket serverSocket = new DatagramSocket(9876);
 byte[] receiveData = new byte[1024];
 byte[] sendData = new byte[1024];
 while(true)
 {
 //Deklarasi penerimaan paket
 DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
 serverSocket.receive(receivePacket);
 //Simpan dalam variabel dan cetak
 String sentence = new String( receivePacket.getData());
 System.out.println("RECEIVED: " + sentence);
 //Ambil Default IP yang mengirimkan pesan
 InetAddress IPAddress = receivePacket.getAddress();
 //Ambil port yang mengirimkan data
 int port = receivePacket.getPort();
 //Jadikan huruf besar data yang di terima
 String capitalizedSentence = sentence.toUpperCase();
 //Konvert data yang di terima menjadi byte data
 sendData = capitalizedSentence.getBytes();
 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
 //Kirim kembali data yang terlah di terima
 serverSocket.send(sendPacket);
 }
 }
}

Sekarang untuk aplikasi client nya

import java.io.*;
import java.net.*;

class UDPClient
{
 public static void main(String args[]) throws Exception
 {
 //Baca Inputan keyboard
 BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in));
 //Deklarasi data paket
 DatagramSocket clientSocket = new DatagramSocket();
 //Lokasi server yang akan dikirim data
 InetAddress IPAddress = InetAddress.getByName("localhost");
 //Deklarasi port server
 int port = 9876;
 //Data yang akan di kirim
 byte[] sendData = new byte[1024];
 //data yang di terima dari server
 byte[] receiveData = new byte[1024];
 //Masukkan data darui keyboard ke variabel
 String sentence = inFromUser.readLine();
 try
 {
 //setting timeout
 clientSocket.setSoTimeout(1000);
 //Masukkan ke send data
 sendData = sentence.getBytes();
 //Inisialisasi paket yang di kirim
 DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
 //Kirim paket data
 clientSocket.send(sendPacket);

 //Ambil data yang di kirim oleh server
 DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
 clientSocket.receive(receivePacket);
 //Masukkan data yang di kirim oleh server
 //Konvert dari byte ke string
 String modifiedSentence = new String(receivePacket.getData());
 //Cetak ke layar
 System.out.println("FROM SERVER:" + modifiedSentence);

 }catch (SocketException | SocketTimeoutException EX){;
 System.out.println(EX.getMessage());
 }finally{
 //Tutup UDP
 clientSocket.close();
 }
 }
}

Selamat mencoba semoga membantu

Wassalamu’ alaikum wr wb