import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.lang.ClassNotFoundException; import java.net.ServerSocket; import java.net.Socket; //javac SocketLocalServer2 public class SocketLocalServer2 { //static ServerSocket variable private static ServerSocket localServer; //tcpSocketlocalServer port on which it will listen private static int port = 9876; public static void main(String args[]) throws IOException,ClassNotFoundException{ //create the tcpSocketlocalServer object localServer = new ServerSocket(port); //listens indefinitely and quits 'terminate' call while(true){ System.out.println("Waiting for client request"); //creating tcpSocketand waiting for client connection Socket tcpSocket= localServer.accept(); //read from tcpSocketto ObjectInputStream object ObjectInputStream objInPutStream = new ObjectInputStream(tcpSocket.getInputStream()); //convert ObjectInputStream object to String String message = (String) objInPutStream.readObject(); System.out.println("Message Received: " + message + " " + "from local client"); //create ObjectOutputStream object ObjectOutputStream objOutPutStream = new ObjectOutputStream(tcpSocket.getOutputStream()); //write object to Socket objOutPutStream.writeObject("Local Server Speaks "+message); //close resources objInPutStream.close(); objOutPutStream.close(); tcpSocket.close(); //terminate the localServer if client sends exit request if(message.equalsIgnoreCase("terminate")) break; } System.out.println("Shutting down Socket localServer!!"); //close the ServerSocket object localServer.close(); } }