Question: 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

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+" "); // 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());

} } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!