Bittorent を C で実装しようとしています。まず、コード スニペットを作成する前に、Web ブラウザーを使用して次のメッセージ (URL) をトラッカー サーバーに送信しようとしました。
この URL を試すことができます。
http://torrent.ubuntu.com:6969/announce?info_hash=%9ea%80%ed%e7/%c4%ae%c8%de%8c%b0C%81c%fbq%3cJ%22&peer_id=M7-3-5--%eck%a8%2a%7f%e6%3ah%84%f2%9d%c5&port=43611&uploaded=0&downloaded=0&left=0&corrupt=0&key=00BA7F86&event=started&numwant=4&compact=0&no_peer_id=0
このリンクからxubuntu-13.04-desktop-i386.isoという名前9e6180ede72fc4aec8de8cb0438163fb713c4a22
で SHA-1 値を持つtorrent ファイルをダウンロードしました。
ただし、上記のリクエストを送信した後、取得します
HTTP/1.0 200 OK
d8:completei357e10:incompletei8e8:intervali1800e5:peers24:l\262j"\310Հp\226\310\325G?\205^%!\221x \364\367\357e
しかし、Bittorentの仕様は言う
peers : 値はディクショナリのリストで、それぞれに次のキーがあります
-peer id ピアの自己選択 ID (トラッカー要求について前述したとおり) (文字列)
-ip ピアの IP アドレス (IPv6 または IPv4) または DNS 名 (文字列) )
-ポート ピアのポート番号 (整数)
peers フィールドの値が Bencoded リストではなくバイナリである理由は?
前もって感謝します。