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 integ
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 integ
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
Answer
import java.io.*;
import java.net.*;
import java.util.ArrayList ;
import java.util.Collections;
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,
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 */
// 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:
// Let's keep reading data from the client, as long as the client does't send "exit".
String inputData;
int y = 0;
out.flush();
//System.out.println("received a message from client: " + inputData); //print the incoming data
from the client
if( inputData.toLowerCase().contains("add") ){
int x = Integer.parseInt(stripNonDigits(inputData) );
list.add(x);
out.println("added successfully");
out.flush();
else if (inputData.toLowerCase().contains("remove")){
list.remove( Integer.valueOf(stripNonDigits(inputData) ) );
out.println("remove successfully");
out.flush();
else if (inputData.toLowerCase().equals("get_summation")){
if(sum(list) != 0)
else
out.flush();
else if (inputData.toLowerCase().equals("get_minimum")){
if(sum(list) != 0){
}else{
out.flush();
else if (inputData.toLowerCase().equals("get_maximum")){
if(sum(list) != 0){
out.println("The maximum is " + maximum(list));
out.flush();
else{
out.flush();
}else if(!inputData.toLowerCase().equals("exit")){
out.println("Unsupported command" );
out.flush();
out.flush();
out.close();
ostream.close();
br.close();
mySocket.close();
connectedClient.close();
// return sum
if ( m == null)
return 0 ;
int sum = 0;
sum += m.get(i);
return sum;
// return minimum
return Collections.min(m);
// return maximum
return Collections.max(m);
sb.append(c);
return sb.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
// to interact (send data / read incoming data) with the server, we need to create the following:
// BufferReader object to read data coming from the server through the socket
while(!statement.equals("exit")) {
statement = in.nextLine(); // read user input from the terminal data to the server
//writer.write(statement+"\n");
// writer.flush();
if(!statement.equals("exit")){
// close connection.
outStream.close();
inStream.close();
mySocket.close();
} catch (Exception exc) {