I'm trying to implement Bittorent in C. First of all, before writing a code snippet, I tried to used a web browser to send the following message(URL) to the tracker server.

you may try this URL.

http://torrent.ubuntu.com:6969/announce?
info_hash=%9b%db%bbI%f0%85%a2%d1%5d%96%ac%fa%bf%f81%06%001O%e0
&peer_id=ABCDABCDABCDABCDABCD&port=6882&downloaded=0
&uploaded=0
&left=0
&event=started

I have downloaded the torrent file from this link which is named dapper-dvd-i386.iso and has 9bdbbb49f085a2d15d96acfabff8310600314fe0 as SHA-1 value.

However, after sending above request, I get

your client is outdated, please upgrade
(HTTP 400 bad request)

Why does tracker server NOT understand my reqeust? Any specs from Internet does not help me.
Any help would be awesome. Thank you in advance.

有帮助吗?

解决方案

It is because the request string don't have compact=1 in it.
Most tracker require that nowadays. The legacy way is too ineffective.

See BEP 23: Tracker Returns Compact Peer Lists http://www.bittorrent.org/beps/bep_0023.html

Try:

http://torrent.ubuntu.com:6969/announce?
info_hash=%9b%db%bbI%f0%85%a2%d1%5d%96%ac%fa%bf%f81%06%001O%e0
&peer_id=ABCDABCDABCDABCDABCD&port=6882&downloaded=0
&uploaded=0
&left=0
&event=started
&compact=1

ie

http://torrent.ubuntu.com:6969/announce?info_hash=%9b%db%bbI%f0%85%a2%d1%5d%96%ac%fa%bf%f81%06%001O%e0&peer_id=ABCDABCDABCDABCDABCD&port=6882&downloaded=0&uploaded=0&left=0&event=started&compact=1

and the answer from the tracker is:

d8:completei4e10:incompletei0e8:intervali1800e5:peers6:******e
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top