CN Lab-4

// Multi threading using Socket programming

import java.net.*;

import java.io.*;

public class MultiThreadTCP implements Runnable

{

Socket clientsocket;

public MultiThreadTCP(Socket socket)

{

clientsocket=socket;

}

public void run()

{

while(true)

{

try

{

//Assuming a client got connected and clientsocket available for server

//let us try to write code to send and receive(from the server)

//via the clientsocket

BufferedReader infromClient= new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));

//Read from client

String inputstring= infromClient.readLine();

System.out.println("From Client:"+ inputstring);

PrintWriter OutToclient=new PrintWriter(clientsocket.getOutputStream());

String output=inputstring.toUpperCase();

//send to client

OutToclient.println("From Server:"+output);

OutToclient.flush();

}

catch(Exception e)

{

System.out.println("error");

}

}// end of while

}// end of run

public static void main(String[] args)throws Exception

{

//create a TCP server tht listens via serversocet(welcomesocket)

ServerSocket serverobj= new ServerSocket(6969);

while(true)

{

Socket DueToclientconnection=serverobj.accept();//blocking call

MultiThreadTCP Serverobj= new MultiThreadTCP(DueToclientconnection);

Thread ForEveryClient= new Thread(Serverobj);

ForEveryClient.start();

}

}

}