Assignment The goal of this assignment is to implement a TCP client and server, and a UDP client and server (for a total of four different programs). You can use Java. Your TCP or UDP client/server will communicate over the network and exchange data. The server will start in passive mode listening on a specified port for a transmission from a client. Separately, the client will be started and will contact the server on a given IP address and port number that must be entered via the command line. The client will pass the server a string consisting of a sequence of characters. If the string contains anything but numbers, the server will respond with "Sorry, cannot compute!" and exit. If the string contains all numbers, the individual digits will be added together and returned as a string (see below for an example). If the server sends a "Sorry" response to the client it will immediately exit. If the server receives a string of numbers, it will (1) add the digits together, (2) send the value back to the client, and (3) will not exit unless the response is a single digit. This process will be repeated until there is only one digit remaining. Note: the server will send a new packet each time Step (2) is executed, and the client will expect to receive a packet until there is only a single digit. See below for the exact output. Examples Starting the Server Assume that you started a server on machine 184.108.40.206, listening to port number 32000. The syntax should look like the following: machine1> server 32000 oIn this example, "server" should be replaced by one of the names given below in the Submission section. oThe server should not produce any output but should end after interacting with a client.
Starting the Client machine2> client 220.127.116.11 32000 oIn this example, "client" should be replaced by one of the names given below in the Submission section. Client Input/Output for Non-Numeric Example machine2> client 18.104.22.168 32000 Enter string: I don't like addition!! From server: Sorry, cannot compute! machine2>
Client Input/Output for Numeric Example machine2> client 22.214.171.124 32000 Enter string: 123456789101234567891012345678910 From server: 138 From server: 12 From server: 3 machine2> Turn In You must turn in exactly four programs (should be included in the one file). The program names should be: �Server in Java using UDP (file name to turn in: server_java_udp.java) �Client in Java using UDP (file name to turn in: client_java_udp.java) �Server in Java using TCP (file name to turn in: server_java_tcp.java) �Client in Java using TCP (file name to turn in: client_java_tcp.java) To compile your Java code, use the following commands: "javac server_java_udp.java" "javac client_java_udp.java" "javac server_java_tcp.java" "javac client_java_tcp.java"