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());
}
}
}
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more