A peer to peer sharing application my partner and I developed for our graduate networking course, Internet Protocols. This application is a P2P file sharing system with a centralized index (CI).
The project goals:
- Becoming familiar with network programming and the socket interface
- Creating server processes that wait for connections
- Creating client processes that contact a well-known server and exchange data over the Internet
- Defining a simple application protocol and making sure that peers and server follow precisely the specifications for their side of the protocol in order to accomplish particular tasks
- Creating and managing a centralized index at the server based on information provided by the peers
- Implementing a concurrent server that is capable of carrying out communication with multiple clients simultaneously