Peer to Peer File Sharing (2017)- Implementation of the popular Bit Torrent in Java using network libraries.
BitTorrent is a popular P2P protocol for file distribution. Among its interesting features, we were asked to implement the choking-unchoking mechanism which is one of the most important features of BitTorrent.
Protocols included were:-Handshake message, Actual messages, Handshake and bitfield, choke and unchoke, interested and uninterested, etc. Implementation specifics included constraints in number of preferred neighbors, unchoking interval as well as file handling, logger, TCP connection, remote processes etc.