Implementing Bittorrent Protocol
ProtocolsBittorrentProtocols Problem Overview
I am looking for a tutorial/blog post on how to implement bittorrent protocol step by step. How it works? How do you make requests to peers? and talk to trackers.
I do not mind the programming language (java,ruby,perl,c#)
Protocols Solutions
Solution 1 - Protocols
the complete description of bittorrent protocol:
Solution 2 - Protocols
There is the libtorrent library.
Here's the API documentation and examples.
Solution 3 - Protocols
This is good source http://www.kristenwidman.com/blog/how-to-write-a-bittorrent-client-part-1/ She explains the process step by step...
Solution 4 - Protocols
I'd suggest you look at the spec and sources of some OSS clients. You'll have to do some work, but that's how programming works.
Solution 5 - Protocols
I'm currently implementing a BitTorrent client in Java using this specification.
Solution 6 - Protocols
Qt is very easy to read so you can read the Qt Torrent Example (C++)
Solution 7 - Protocols
This is a implementation of the bittorrent protocol done in .NET. Its source code is available on github and it has documentation
Solution 8 - Protocols
Implementing the protocol is not that hard by following the specs. However, there are lots of internal things like storage, scalable server, peer/piece pick algorithm, etc.
Earlier BitTorrent implementation or BitTornado used python, which is easy to read. I personally found them useful to understand the internals.