Calculator Server and Client  Java  The goal: Make a client that sends simple arithmetic expressions, and a server that solves them and sends the result

Calculator Server and Client  Java 

The goal: Make a client that sends simple arithmetic expressions, and a server that solves them and sends the result back to the client. 

Class design requirements: 

Your program should contain at least the following classes • CalculatorClient • CalculatorServer Important note: This is an unusual project in that it does not require a Tester class! I will run your two classes myself, calculatorolient and calculatorserver, and test them. 

Each of your classes, CalculatorClient and CalculatorServer, should have main(String[] args) methods, allowing them to be run! Thus, they will never actually be instantiated; they will just run. 

Here are the requirements for each class: CalculatorServer: • Makes a ServerSocket that awaits a connection on a port of your choice. • When a connection is made, it sends a one-time welcome message to the connected socket. 

• Repeatedly awaits data from the connected socket in the form <double> <operator> <double>, where <double> is a string that can be parsed to a Java Double data type, and <operator> is a string that is either “+”, “-“, “r, or “*”, representing addition, subtraction, division, or multiplication, respectively. • When data of this form is received, representing an arithmetic calculation to be made, actually does the calculation and sends the result back to the connecting socket. 

CalculatorClient: 

• Makes a Socket that connects to some port of your choice on the host “localhost”. This port should match that of the server! 

• Repeatedly asks the user for input, and sends that input over the socket connection to the server. 

• When a response is received (which should be the solution to the arithmetic problem), prints that to the console. 

Note: It’s okay in this case for your server or client to crash if the client sends data in the wrong format (for example, if the client sent the string “5+5” with no spaces, or the string “foo”). You will not be marked down for this occurring. 

Share This Post

Email
WhatsApp
Facebook
Twitter
LinkedIn
Pinterest
Reddit

Order a Similar Paper and get 15% Discount on your First Order

Related Questions

How does Rupa Huq’s argument in “Rethinking Subculture” relate to Dick Hebdige’s understanding of subculture, as explained by Huq? Explain how Hebdige or

How does Rupa Huq’s argument in “Rethinking Subculture” relate to Dick Hebdige’s understanding of subculture, as explained by Huq? Explain how Hebdige or Huq’s understanding of style relates to how youth express identity and community today. Normal 0 false false false EN-US X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:”Table

Week8_Test Plan Instructions: The Test Plan for each project includes the Pseudocode, Flowchart, Goals and Objectives, Functional Requirements, and Test

Week8_Test Plan Instructions: The Test Plan for each project includes the Pseudocode, Flowchart, Goals and Objectives, Functional Requirements, and Test Matrix including Actual Output column.  Below the table are screenshots verifying the actual output for each case. Note:  Your programming projects should be submitted in the Revel environment for grading. Week