Professional Documents
Culture Documents
I. Practical Significance:
The User Datagram Protocol (UDP) is connectionless, and unreliable protocol by
which the user can send short messages called datagrams. The java provides
DatagramSocket and DatagramPacket class to implement the concept of user
datagram protocol. By using these classes we can transfer the data asynchronous
manner.
The Java DatagramSocket class is used to send and receive the datagrams it is
connection less socket. That is there is no guarantee of message delivery.
It has following constructors
1. DatagramSocket()
2. DatagramSocket(int port)
3. DatagramSocket(int port, InetAddress address)
The Java DatagramPacket is class that can be used to send the packets. If you send
multiple packet, it may arrive in any order. Additionally, packet delivery is not
guaranteed.
It has following constructors
1. DatagramPacket(byte[] barr, int length)
2. DatagramPacket(byte[] barr, int length, InetAddress address, int port)
Nil
Sr. Name of
Broad Specification Quantity Remarks (If any)
No. Resource
import java.net.*;
public class DGramSender
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds = new DatagramSocket();
String str = "Java is Easy!!!!!";
InetAddress ip = InetAddress.getByName("127.0.0.1");
DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(),
ip, 3000);
ds.send(dp);
ds.close();
}
XIII. Exercise
1. Code:-
1. Server Side:
import java.io.*;
import java.net.*;
public class udpServerEO {
public static void main(String args[]) {
try {
DatagramSocket ds = new DatagramSocket(2000);
byte b[] = new byte[1024];
DatagramPacket dp = new DatagramPacket(b,b.length);
ds.receive(dp);
String str = new String(dp.getData(),0,dp.getLength());
System.out.println(str);
int a= Integer.parseInt(str);
String s= new String();
if (a%2 == 0)
s = "Number is even";
else
s = "Number is odd";
byte b1[] = new byte[1024];
b1 = s.getBytes();
DatagramPacket dp1 = new
DatagramPacket(b1,b1.length,InetAddress.getLocalHost(),1000);
ds.send(dp1);
}
catch(Exception e) {
e.printStackTrace();
}}}
2. Client Side:
import java.io.*;
import java.net.*;
public class udpClientEO {
public static void main(String args[]) {
try {
DatagramSocket ds = new DatagramSocket(1000);
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Enter a number : ");
String num = br.readLine();
byte b[] = new byte[1024];
b=num.getBytes();
DatagramPacket dp = new
DatagramPacket(b,b.length,InetAddress.getLocalHost(),2000);
ds.send(dp);
byte b1[] = new byte[1024];
DatagramPacket dp1 = new DatagramPacket(b1,b1.length);
ds.receive(dp1);
String str = new String(dp1.getData(),0,dp1.getLength());
Maharashtra state Board of Technical Education 95
Advanced Java Programming (22517)
System.out.println(str);
}
catch(Exception e) {
e.printStackTrace();
}}}
Output:-
Client Side:
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws IOException {
DatagramSocket ds = new DatagramSocket(2019);
byte[] receiveData = new byte[512];
byte[] sendData = new byte[512];
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" UDP Server Socket is created, waiting for client ");
do {
DatagramPacket receiveDP = new DatagramPacket(receiveData,receiveData.length);
ds.receive(receiveDP);
String clientMessage = new String(receiveDP.getData(),0,receiveDP.getLength());
System.out.println("Client Message:"+clientMessage);
InetAddress ip = receiveDP.getAddress();
System.out.print("\n\nEnter Server Message:");
String serverMessage = br.readLine();
sendData = serverMessage.getBytes();
DatagramPacket sendDP = new DatagramPacket(sendData, sendData.length, ip,
receiveDP.getPort());
ds.send(sendDP);
receiveData = new byte[512];
} while(true);
}
}
Maharashtra state Board of Technical Education 97
Advanced Java Programming (22517)
Output:-
1. …………………………………..
2. …………………………………..
3. …………………………………..
Dated signature
Marks Obtained
of Teacher
Process
Product Related(15) Total(50)
Related(35)