Client Supported Commands Server Reaction and response Add: x where x can be any integer value (e.g., Add: 74) 1- Add x to the inputValues list 2- Respond with “added

Client Supported Commands Server Reaction and response   Add: x where x can be any integer value (e.g., Add: 74) 1- Add x to the inputValues list 2- Respond with “added successfully”   Remove: x where x can be any integer value (e.g., Remove: 2) 1- Remove all occurrences x from the inputValues list 2- Respond with “removed successfully”   Get_Summation 1- Calculate the summation of values in the inputValues list 2- Respond with “The summation is x” where x is the summation of all values in the list. If empty list or all elements are zeros, x in the message equals null   Get_Minimum 1- Search for the minimum number in the inputValues list 2- Respond with “The minimum is x” where x is the minimum value in the list. If empty list or all elements are zeros, x in the message equals null   Get_Maximum 1- Search for the maximum number in the inputValues list 2- Respond with “The maximum is x” where x is the maximum value in the list. If empty list or all elements are zeros, x in the message equals null Exit. This is the only command that terminates the interactive communication. No action or response required JAVA PROGRAM. import java.io.*; import java.net.*; class Server { public static void main(String args[]) { try { // Create server Socket that listens/bonds to port/endpoint address 6666 (any port id of your choice, should be >=1024, as other port addresses are reserved for system use) // The default maximum number of queued incoming connections is 50 (the maximum number of clients to connect to this server) // There is another constructor that can be used to specify the maximum number of connections ServerSocket mySocket = new ServerSocket(6666); System.out.println(“Startup the server side over port 6666 ….”); // use the created ServerSocket and accept() to start listening for incoming client requests targeting this server and this port // accept() blocks the current thread (server application) waiting until a connection is requested by a client. // the created connection with a client is represented by the returned Socket object. Socket connectedClient = mySocket.accept(); // reaching this point means that a client established a connection with your server and this particular port. System.out.println(“Connection established”); // to interact (read incoming data / send data) with the connected client, we need to create the following: // BufferReader object to read data coming from the client BufferedReader br = new BufferedReader(new InputStreamReader(connectedClient.getInputStream())); // PrintStream object to send data to the connected client PrintStream ps = new PrintStream(connectedClient.getOutputStream()); // Let’s keep reading data from the client, as long as the client does’t send “exit”. String inputData; while (!(inputData = br.readLine()).equals(“exit”)) { System.out.println(“received a message from client: ” + inputData);   //print the incoming data from the client ps.println(“Here is an acknowledgement from the server”);              //respond back to the client } System.out.println(“Closing the connection and the sockets”); // close the input/output streams and the created client/server sockets ps.close(); br.close(); mySocket.close(); connectedClient.close(); } catch (Exception exc) { System.out.println(“Error :” + exc.toString()); } } } /*********************************/ import java.io.*; import java.net.*; import java.util.Scanner; class Client { public static void main(String args[]) { try { // Create client socket to connect to certain server (Server IP, Port address) // we use either “localhost” or “127.0.0.1” if the server runs on the same device as the client Socket mySocket = new Socket(“127.0.0.1”, 6666); // to interact (send data / read incoming data) with the server, we need to create the following: //DataOutputStream object to send data through the socket DataOutputStream outStream = new DataOutputStream(mySocket.getOutputStream()); // BufferReader object to read data coming from the server through the socket BufferedReader inStream = new BufferedReader(new InputStreamReader(mySocket.getInputStream())); String statement = “”; Scanner in = new Scanner(System.in); while(!statement.equals(“exit”)) { statement = in.nextLine();              // read user input from the terminal data to the server outStream.writeBytes(statement+”\n”);        // send such input data to the server String str = inStream.readLine();         // receive response from server System.out.println(str);                // print this response } System.out.println(“Closing the connection and the sockets”); // close connection. outStream.close(); inStream.close(); mySocket.close(); } catch (Exception exc) { System.out.println(“Error is : ” + exc.toString()); } } }

Do you need us to help you on this or any other assignment?


Make an Order Now