import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main (String[] args) { ServerSocket serverSocket = null; /* Start listening on port */ try { serverSocket = new ServerSocket (4200); } catch (Exception e) { e.printStackTrace (); return; } Socket socket = null; BufferedReader input = null; PrintWriter output = null; /* Receive incoming client connection */ try { socket = serverSocket.accept (); input = new BufferedReader (new InputStreamReader (socket.getInputStream ())); output = new PrintWriter (socket.getOutputStream (), true); } catch (Exception e) { e.printStackTrace (); } /* Interact with client */ try { String line = getStringFromClient (input); int number = getIntFromClient (input); int result = number * line.length (); output.println (result); number = getIntFromClient (input); line = getStringFromClient (input); output.println (line + number); line = getStringFromClient (input); number = getIntFromClient (input); result = number / 9; output.println (result); number = getIntFromClient (input); line = getStringFromClient (input); output.println (result * 5); line = getStringFromClient (input); number = getIntFromClient (input); result = number * line.length(); output.println (result); number = getIntFromClient (input); line = getStringFromClient (input); output.println ("QUIT"); } catch (Exception e) { e.printStackTrace (); } /* Shutdown client connection */ try { input.close (); output.close (); socket.close (); serverSocket.close (); } catch (Exception e) { e.printStackTrace (); } } public static int getIntFromClient (BufferedReader input) { int result = -1; try { String line = input.readLine (); result = Integer.parseInt (line); } catch (Exception e) { e.printStackTrace (); } return result; } public static String getStringFromClient (BufferedReader input) { String result = ""; try { result = input.readLine (); } catch (Exception e) { e.printStackTrace (); } return result; } }