Implementing Bittorrent Protocol

ProtocolsBittorrent

Protocols 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:

http://jonas.nitro.dk/bittorrent/bittorrent-rfc.html

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

Monotorrent

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHamza YerlikayaView Question on Stackoverflow
Solution 1 - ProtocolspesarakView Answer on Stackoverflow
Solution 2 - ProtocolsJonathan PriorView Answer on Stackoverflow
Solution 3 - ProtocolsBhushan LodhaView Answer on Stackoverflow
Solution 4 - ProtocolsArmandasView Answer on Stackoverflow
Solution 5 - ProtocolsmacbirdieView Answer on Stackoverflow
Solution 6 - ProtocolsDerick SchoonbeeView Answer on Stackoverflow
Solution 7 - Protocolsblessanm86View Answer on Stackoverflow
Solution 8 - ProtocolsgoododdView Answer on Stackoverflow