Week 4

2. Process 1 sends three messages successively to process 2. What is the possible order in which the message may arrive at process 2 if

a. connectionless socket is used to send each message?

b. connection-oriented socket is used to send each message?

3. In the setSoTimeout method for the datagramSocket (or other socket classes, what happens if the timeout period is set to 0? Does it mean that the timeout happens immediately (since the period is 0)? Consult the online Java API to find the answer.

4. Write a Java code fragment that may appear in a main method to open a datagram socket for receiving a datagram of up to 100 bytes, timing out in 5 seconds. If a timeout does occur, a message "timed out on receive" should be displayed on screen.

Week 5

6. This exercise uses EchoServer1 and EchoClient1, which use connectionless datagram sockets for the Echo service.

Compile Echo*1.java (javac Echo*1.java) Then:

a. Run the programs by starting the server first (don't forget to specify a port number as a command-line argument), then the client. Conduct a session and observe the diagnostic messages displayed on both sides. Describe your observations of the sequence of events.

b. With the server running, start two clients in separate windows. Can you conduct the two client sessions in parallel? Describe and explain your observations.

Week 6

Exercise 6. Open a new folder. Copy all the source files of the Hello example to the folder. Add code in the sayHello method of HelloImpl.java so that there is a 5-second delay before the method returns. This has the effect of artificially lengthening the latency for each invocation of the method. Compile and start the server.

In separate screens, start two or more clients. Observe the sequence of events displayed on the screens. Can you tell if the method calls are executed by the object server concurrently or iteratively? Explain.

Exercise 7. Open a new folder. Copy all the source files of the Hello example to the folder. Modify the sayHello method so that an argument, a name string, is passed in as an argument, and the return string is the string "Hello!" concatenated with the name string.

a. Show the code modifications.

b. Recompile and run the server and then the client. Describe and explain what happened.

c. Run rmic again to generate the new proxies for the modified interface, and then run the server and the client.

Hand the source listings and a scripts of the run outcomes.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.