Assignment 1: Centralized File Sharing System
Peer-to-Peer File Sharing System
The goal of this assignment is to design and implement a simple
Napster-like file sharing system.
Here are some high-level design requirements of your system.
You are free to use any programming language (C, C++, Java, etc.) and
any mechanism for communicating between machines (such as TCP, UDP,
RPCs, etc.). We have provided some sample code for establishing a TCP
connection between two nodes and exchanging a pair of strings. Note
that the server forks a new pthread to handle each client. The code
is available on the Zoo machines at /c/cs425/as1code.
Submission Instructions
We are going to use the most primitive form of submission! Just tar
and compress the directory containing all the files and email it to
the instructor (arvind@cs.yale.edu). To tar and compress the
directory "as1code," use the following command: "tar cf - as1code |
gzip -c > as1code.tar.gz." Then email the tar-ball as an attachment.
Please make sure that the directory does not contain any core files or large
files that were used for testing.
Things to include in your submission:
A readme file describing how to run the system
Source code (with comments where needed)
An updated version of the design document that reflects the
current design