我正在尝试用 C 语言实现 Bittorrent。首先,在编写代码片段之前,我尝试使用网络浏览器将以下消息(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
我已经从以下位置下载了 torrent 文件这个链接 http://torrent.ubuntu.com:6969它被命名为xubuntu-13.04-desktop-i386.iso并且有9e6180ede72fc4aec8de8cb0438163fb713c4a22
作为 SHA-1 值。
但是,发送上述请求后,我得到
HTTP/1.0 200 OK
d8:completei357e10:incompletei8e8:intervali1800e5:peers24:l\262j"\310Հp\226\310\325G?\205^%!\221x \364\367\357e
但 Bittorrent 规范说
peers :该值是一个字典列表,每个字典都有以下键
-对等点 ID
对等方的自选 ID,如上面针对跟踪器请求所述(字符串)
-ip
对等方的 IP 地址(IPv6 或 IPv4)或 DNS 名称(字符串)
-港口
对等方的端口号(整数)
为什么peers字段的值是二进制的,而不是Bencoded列表?
先感谢您。
对等值可以是由 6 字节的倍数组成的字符串。前 4 个字节是 IP 地址,后 2 个字节是端口号。全部采用网络(大端)表示法。
https://wiki.theory.org/BitTorrentSpecification#Tracker_HTTP.2FHTTPS_Protocol https://wiki.theory.org/BitTorrentSpecification#Tracker_HTTP.2FHTTPS_Protocol
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)