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
adelen
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
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());
}
}
}
- 2 years ago
Purchase the answer to view it