DatagramSocket class

Education is not limited to just classrooms. It can be gained anytime, anywhere... - Ravi Ranjan (M.Tech-NIT)

Java DatagramSocket and DatagramPacket

Java DatagramSocket and DatagramPacket classes are used for connection-less socket programming.

Java DatagramSocket class

Java DatagramSocket class represents a connection-less socket for sending and receiving datagram packets.

A datagram is basically information but there is no guarantee of its content, arrival or arrival time.

Commonly used Constructors of DatagramSocket class

  • DatagramSocket() throws SocketEeption: it creates a datagram socket and binds it with the available Port Number on the localhost machine.
  • DatagramSocket(int port) throws SocketEeption: it creates a datagram socket and binds it with the given Port Number.
  • DatagramSocket(int port, InetAddress address) throws SocketEeption: it creates a datagram socket and binds it with the specified port number and host address.

Java DatagramPacket class

Java DatagramPacket is a message that can be sent or received. If you send multiple packets, it may arrive in any order. Additionally, packet delivery is not guaranteed.

Commonly used Constructors of DatagramPacket class

  • DatagramPacket(byte[] barr, int length): it creates a datagram packet. This constructor is used to receive the packets.
  • DatagramPacket(byte[] barr, int length, InetAddress address, int port): it creates a datagram packet. This constructor is used to send the packets.

Example of Sending DatagramPacket by DatagramSocket

  1. //DSender.java  
  2. import java.net.*;  
  3. public class DSender{  
  4.   public static void main(String[] args) throws Exception {  
  5.     DatagramSocket ds = new DatagramSocket();  
  6.     String str = "Welcome java";  
  7.     InetAddress ip = InetAddress.getByName("127.0.0.1");  
  8.      
  9.     DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), ip, 3000);  
  10.     ds.send(dp);  
  11.     ds.close();  
  12.   }  
  13. }  

Example of Receiving DatagramPacket by DatagramSocket

  1. /DReceiver.java  
  2. import java.net.*;  
  3. public class DReceiver{  
  4.   public static void main(String[] args) throws Exception {  
  5.     DatagramSocket ds = new DatagramSocket(3000);  
  6.     byte[] buf = new byte[1024];  
  7.     DatagramPacket dp = new DatagramPacket(buf, 1024);  
  8.     ds.receive(dp);  
  9.     String str = new String(dp.getData(), 0, dp.getLength());  
  10.     System.out.println(str);  
  11.     ds.close();  
  12.   }  
  13. }