2013-07-02 100 views
4

我想在C中實現Bittorent。首先,在編寫代碼片段之前,我嘗試使用Web瀏覽器向跟蹤器服務器發送以下消息(URL)。爲什麼跟蹤器服務器不理解我的請求? (Bittorrent協議)

你可以試試這個網址。

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 

我從this link被命名爲短小精悍-DVD-i386.iso並具有9bdbbb49f085a2d15d96acfabff8310600314fe0爲SHA-1的值下載torrent文件。

然而,上述請求發送後,我得到

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

爲什麼tracker服務器不理解我的reqeust?來自互聯網的任何規格都不能幫助我。
任何幫助將是真棒。先謝謝你。

+0

請包括代碼喲你用它來產生你的請求。 – jxh

+1

當我嘗試C代碼時,我得到了與Web瀏覽器相同的結果。您可以使用您的網絡瀏覽器嘗試在URL上方。 – inherithandle

+0

@jxh我認爲URL會有問題。所以我希望有人更正我的網址。 – inherithandle

回答

9

這是因爲請求字符串中沒有compact=1
現在大多數追蹤器都需要。傳統方式太無效。

見BEP 23:跟蹤返回緊湊peer列表http://www.bittorrent.org/beps/bep_0023.html

嘗試:

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 

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 

,並從跟蹤的答案是:

d8:completei4e10:incompletei0e8:intervali1800e5:peers6:******e 
相關問題