Simultaneous transfer between Server and Client Using Socket Programming Through UDP


Socket Programming Through UDP
	Simultaneous transfer between Server and Client

Program:

Server End

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

public class Server

{
	public static void main(String arr[]) throws Exception
	{
	DatagramSocket ss=new DatagramSocket(12345); 
       	byte[] sd=new byte[1024]; 
      	byte[] rd=new byte[1024]; 
	boolean val=true;
	while(val)
	{
	DatagramPacket rc=new DatagramPacket(rd,rd.length);   
      	ss.receive(rc); 
	String str=new String(rc.getData()); 
  	System.out.println("FROM Client: "+str);
	str="";
	InetAddress addr = rc.getAddress();
	int port = rc.getPort(); 
	Scanner sc=new Scanner(System.in);
  	System.out.print("Enter text: ");
      	str=sc.nextLine(); 
      	sd=str.getBytes();
	DatagramPacket snd=new DatagramPacket(sd,sd.length,addr,port); 
      	ss.send(snd); 
	}
      	ss.close();        
	}

}


Client End

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

public class Client
{
	public static void main(String arr[]) throws Exception
	{
	Scanner sc=new Scanner(System.in);
      	DatagramSocket cs=new DatagramSocket(); 
      	byte[] rd=new byte[1024]; 
      	byte[] sd=new byte[1024];
	boolean val=true;
	while(val)
	{
	InetAddress addr = InetAddress.getByName("localhost"); 
	System.out.print("Enter text: ");
	String str=sc.nextLine(); 
      	sd=str.getBytes();
	DatagramPacket snd=new DatagramPacket(sd,sd.length,addr,12345); 
  	cs.send(snd);
	DatagramPacket rc=new DatagramPacket(rd,rd.length);
      	cs.receive(rc); 
      	str=new String(rc.getData()); 
      	System.out.println("FROM Server: "+str);
      	cs.send(snd); 
  	}
      	cs.close();       
	}
}


Output

Server side:

$ javac Server.java

$ java Server


FROM Client: 1

Enter text: 2

FROM Client: 3

Enter text: 4

FROM Client: 6

Enter text: 5


Enter text: 7

FROM Client: 6

Enter text: 8

FROM Client: 10
Enter text: 9 

FROM Client: 22
Enter text: 14

FROM Client: 13



Client Side:

$ javac Client.java

$ java Client


Enter text: 1

FROM Server: 2

Enter text: 3

FROM Server: 4

Enter text: 6

FROM Server: 5

Enter text: 6

FROM Server: 7

Enter text: 10

FROM Server: 8

Enter text: 22

FROM Server: 9

Enter text: 13

FROM Server: 14







Share:

0 comments