step 1- Change your program now as follows: the client sends 30 requests containing English words to be translated to French, e.g., any random sentence. To do that you can use a hashtable to store all the mapping between the English words and their French translations.
step 2- In this part we will add a backup server that will take over when the main server fails. Change your program now as follows: the client sends 1000 requests containing any arithmetic expression, e.g., “2^i + 100*i – 100" to the server. This server calculates the result of the expression specified by the client and sends back the result, i.e., for i=1 it will be "102", to the client. In addition, the server sends the client's request along with the client's IP address and port number to a backup server. The expression that the user can specify includes only the following operations: + (add), - (sub), * (mul), and ^ (power).
The backup server stores all the received operations in a backup database (in our case it will be any data structure of your choice). Implement the backup so that when the main server fails it will take on and continue serving the client in a transparent way. The back should detect that the main server is down and then uses the information it maintains to re-establish connections with the current clients and continue serving them. Note that your program must allow many clients at the same time. During the demo you will be requested to run your application on at least three machines.