Tracker服务器返回的数据和BT规范不一样啊,急!!!!!
szws 2006-04-24 02:42:50 正在情况下,tracker应该返回标准上这样写到:
Tracker的响应是用bencoded编码的字典。如果tracker的响应中有一个关键字failure reason,那么它对应的是一个字符串,用来解释查询失败的原因,其它关键字都不再需要了。否则,它必须有两个关键字:Interval:下载者在两次发送请求之间的时间间隔。Peers:一个字典的列表,每个字典包括以下关键字:Peer id,Ip,Port,分别对应peer所选择的id、ip地址或者dns名称、端口号。注意,如果某些事件发生,或者需要更多的peers,那么下载者可能不定期的发送请求,
但是,小弟写的程序,tracker返回的数据如下:
d8:intervali1800e5:peers210:轤.?⑥*.?偹I02蹖W??\0观龠wE,?.??0.?!;!}瓽燠T./bd覬S怢呟D.費彳?
.鈢.
Kg%坶i%=[=?慴椵踃.9".G疐8甾*.??!膈g.廦.P搌@肒.=缝?r轣珼g勞.F?T.
.?e?.珗&y踿"PE?H.m2:=
*.y剞@.鳷徂沂?迣u共:マ*.?傐栞.G
e
也就是它返回了interval和peers,但是peers是个字符串,而且后面的乱码好像是sha校验值,
标准上提到这个啊,不知道为什么,多谢大侠指教
另外,我发送给tracker的GET命令格式如下:
“GET %s?info_hash=%s&peer_id=%s&port=%u&compact=1&uploaded=%llu&downloaded=%llu&left=%llu&event=%s \r\n\r\n”