Aim
Write a program to perform bi directional data transfer using Threads .
Progrram
thserver.java
import java.io.*;
import java.net.*;
public class thserver implements Runnable
{
Thread t1=null,t2=null;
BufferedReader in,br;
PrintWriter pw;
Socket s;
ServerSocket ser;
public thserver()
{
try
{
int port=8002;
ser=new ServerSocket(port);
}
catch(Exception e)
{System.out.println("ERROR");}
}
public void run()
{
String msg;
if(Thread.currentThread()==t1)
{
try
{
s=ser.accept();
br=new BufferedReader(new InputStreamReader(s.getInputStream()));
do
{
System.out.println("Enter a message");
msg=br.readLine();
System.out.println("Client:"+msg);
}while(!msg.equals("Quit"));
System.exit(0);
}
catch(Exception e)
{
System.out.println("Error running program");
}
}
else
{
try
{
in=new BufferedReader(new InputStreamReader(System.in));
do
{
msg=in.readLine();
pw=new PrintWriter(s.getOutputStream(),true);
pw.println(msg);
}while(!msg.equals("Quit"));
System.exit(0);
}
catch(Exception e)
{
System.out.println("Error running program");
}
}
}
public static void main(String args[])
{
thserver ss=new thserver();
System.out.println("Sever started");
ss.t1=new Thread(ss);
ss.t2=new Thread(ss);
ss.t1.start();
ss.t2.start();
}
}