Unlike my prevoius post, this is an implementation of Client-Server chat in UDP. UDP is another Transport Layer Protocol. Similar to TCP program , this program also requires it’s server program to be executed first followed by the client program.
udpserver.java
import java.io.*;
import java.net.*;
class udpserver
{
public static void main(String args[])throws Exception
{
System.out.println("Server started....n");
try
{
DatagramSocket server_socket=new DatagramSocket(1234);
BufferedReader server_input=new BufferedReader(new InputStreamReader(System.in));
byte in_data[]=new byte[1024];
byte out_data[]=new byte[1024];
while(true)
{
DatagramPacket Packet2=new DatagramPacket(in_data,in_data.length);
server_socket.receive(Packet2);
String client_str=new String(Packet2.getData());
System.out.println("Client:"+client_str+'n');
InetAddress IP_Add=Packet2.getAddress();
int port=Packet2.getPort();
String server_str;
System.out.println("Enter message:");
server_str=server_input.readLine();
out_data=server_str.getBytes();
DatagramPacket Packet3=new DatagramPacket(out_data,out_data.length,IP_Add,port);
server_socket.send(Packet3);
}
}
catch (Exception e)
{
System.out.println("Error:"+e.getMessage());
}
}
}
udpclient.java
import java.io.*;
import java.net.*;
class udpclient
{
public static void main(String args[])throws Exception
{
System.out.println("Client started....n");
try
{
DatagramSocket client_socket=new DatagramSocket(12345);
BufferedReader client_input=new BufferedReader(new InputStreamReader(System.in));
InetAddress IP_Add=InetAddress.getByName("localhost");
int port=1234;
byte in_data[]=new byte[1024];
byte out_data[]=new byte[1024];
while(true)
{
String client_str;
System.out.println("Enter message:");
client_str=client_input.readLine();
out_data=client_str.getBytes();
DatagramPacket Packet1=new DatagramPacket(out_data,out_data.length,IP_Add,port);
client_socket.send(Packet1);
DatagramPacket Packet4=new DatagramPacket(in_data,in_data.length);
client_socket.receive(Packet4);
String server_str=new String(Packet4.getData());
System.out.println("Client:"+server_str+'n');
}
}
catch (Exception e)
{
System.out.println("Error:"+e.getMessage());
}
}
}