Please note change in description of the client command line parameters as modified on April 21.
Note that this is the last assignment and the usual 12-hour grace period does not apply to this assignment.
You must be prepared to demonstrate your programs in the Sun lab on May 2 at 2 PM.
For this assignment you will extend the programs of Assignments 3 and 4 to use network communication. You will test this with the server and client running on different machines. Use the programs from Assignment 4 if it is working. Otherwise you can use the programs from Assignment 3 as the starting point.
Part 0:
Make sure you have Assignment 3 working.
Part 1:
Rewrite your server to be a parallel network server. It will take a single
command line parameter, the port number. When a connection is made, the
server forks a child process to handle the communication. The server
can handle additional connections while the child is handling its
connection.
Part 2:
Rewrite your client so that it can communicate with your new server.
It will take three command line parameters, the name of the server machine,
a port number and a directory.
Test your client and server as you did for Assignment 3.
Extra credit
You can do either or both of these extra credit problems
to partially make up for a bad grade on one of the midterm exams.
Extra credit part 1:
Make your server work with signals as in Assignment 4.
This may be more difficult than it first seems as the signal handler
needs information generated by the children.
Extra credit part 2
Modify the client and server programs so that files can be updated across
the network. When the client detects that there are files that need to
be created (New File) or replaced (Update File) the file will be transferred
from the server to the client and appropriately stored on the disk.
Handing in your program:
Use this cover sheet. Be sure to include all
source files (you don't need to include the uici or restart libraries).
Be sure to include all include files you have written for this assignment.
On Monday, May 2, come to the Sun Lab instead of coming to class.
If you do not have anything to demonstrate, turn in your assignment to me. You are free to go. Be sure you give a detailed description of the status of your program on the cover sheet.
To demonstrate your program: