Submission Guidelines for Programming Assignment #1

1- The syntax for the Server is:            server
2- The syntax for the Client is:

client <server host machine> <addr/filesize> <string>
addr indicates address request and filesize indicates file-size request.
string defines the name of the host machine, in case of address request packet, or the name of the file, in case of file-size request packet.


client addr
This means that we want to run a client that generates a request to a server running on machine called and we want to ask about the IP address of a machine called
3- Makefile:
You should have the following option in your makefile:
make clean (removes *.o, core, server, client, etc.)
make server (makes the server)
make client (makes the client)
make all (makes both server and client)
The code has to compile and run on the CSC cluster, i.e. on Alpha stations


1- What should I submit?
The TA is expecting the following files to be tarred and submitted:
    a- Server program.
    b- Client program.
    c- makefile.
    d- Header file (s).
    e- Transcripts demonstrating that your client and server programs are working properly.

2- How do I submit my project?
You make a tar archive and then call a certain program from my directory called submit . The exact path is


You can actually create a symbolic link called submit from your directory to the above path, so that you don't have to type it all the time. To create a symbolic link, type the following

ln -s ~jh41701/BIN/submit submit

Finally to submit your program, type

submit proj_number filename

There is only one filename which is the tar file. Project numbers start from 1 for the first assignment.

3- Does the server stay running forever in order to answer multiple requests?
Yes. The server should not terminate in order to be able to answer multiple requests. In order to terminate the server, you can press Control-C(you needn't do anything about this in your program).

Grading Guidelines:
Proper submission: submitted a tar file containing the files specified above. 10
Command line syntax: correct parsing of the command line arguments passed to the client as explained on the web page . 15
Infinite loop on server . 10
Case 1: Handle request for an existent hostname . 10
Case 2: Handle request for an inexistent hostname . 10
Case 3: Handle request for an existent file . 10
Case 4: Handle request for an inexistent file . 10
Use -Wall option and no warnings during make process. 10
Documentation : well-documented code. 15
Total points:  100