Network Programming
Spring 2001

Homework 6 - RPC based address book
Due Date: April 25th

Submit to netprog-submit@cs.rpi.edu with the subject line "6"
Complete Submission instructions are here


IMPORTANT!: Your code will be tested on a Sun. Make sure your code runs properly on a Sun!

RPC based email address database

You are to write an RPC based email address database system. Each record in the database contains a name and an email address (each is simply an ASCII string). Neither a name or an email address can be longer than 80 characters. Your job is to write a simple client/server that can provide the following functionality:

The server should store the records on disk, and your client should support the 4 operations shown above.

Important! For the second operation listed above (list of all records in the database), the client must retrieve this list in a single RPC call - I don't want you to repeatedly call an RPC procedure that returns one item at a time. This means you will need to understand how a non-trival data structure works with RPC (use whatever you want - a variable length array or a linked list are both good ideas).

Make sure your system can work with lots of records! (Don't impose any limitations on the number of records in the database).

You can write a single client that can understand which operation is desired based on the command line, multiple clients (one for each operation), or a menu-driven client that prompts the user for each operation and parameters - it's up to you. Make sure that the client does include a a command line argument that specifies the hostname of the machine running the RPC server.

Deliverables

Your submission must include all the source code for your system and a README file that describes each file and how to build your program.

Grading

The grading will be based on the same formula used for the other projects: 50% for basic functionality, 25% for how well your program deals with unexpected input from the user, memory allocation (no leaks in the server!), error handling, etc. The last 25% is for code quality.

Hints, Suggestions:

Submitting your files

Submission of your homework is via email, the general idea is to send an email message with all your files as attachments. There is an automated email submission system that will respond to your submission right away, so you will have a record that we got your files.

All projects must be submitted via email to netprog-submit@cs.rpi.edu. The subject line of the submission message should contain a single number indicating the project number (1 for HW1, 2 for HW2, etc.). You must include your files as attachments, feel free to send a zip-file or a tar file.

Don't send compiled code!

You can expect a return email indicating receipt of your project submission immediately. This receipt will include a list of all the files that were successfully extracted by the submission script - please look over the receipt carefully to make sure your submission worked.

Multiple Submissions: You can resubmit up to 10 times for each project, we will always grade the last submission received unless you tell us otherwise.