How to run
Build project
make
Run tracker
./tracker myIp:myPort otherTrackerIp:otherTrackerPort
Run clients
./client myIp:myPort defaultTrackerIp:defaultTrackerPort
Share file
share localFilePath mTorrentFilename
Get file
get mTorrentFilename fileNameToSave
mtorrent file structure
Filename
Filesize
Hash
tracker 1 Port
tracker 2 Port
...
tracker N Port
TODO:
- Implement rarest first piece selection algorithm.
- Implement ack based piece transfer protocol.
- Implement multi-tracker system
- Switch to UDP for tracker-tracker communication.
- Implement Thread Pool.
- Implement DHT(Kademlia) ??