我正在和同伴握手。这就是握手的样子:
b'\x13BitTorrent Protocol\x00\x00\x00\x00\x00\x00\x00\x00\x08O\xae=J2\xc5g\x98Y\xafK\x9e\x8d\xbb\x7f`qcG\x08O\xff=J2\xc5g\x98Y\xafK\x9e\x8d\xbb\x7f`qcG'
但是,我得到一个空的b''作为响应。我已将超时设置为10。 这是我的密码:
clientsocket=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.settimeout(5)
print("trying")
try:
clientsocket.connect((ip,port))
except:
continue
print('connected')
#print(req)
clientsocket.send(req)
clientsocket.settimeout(10)
try:
buffer = clientsocket.recv(1048)
except:
continue
知道我的错误是什么吗
您的示例代码存在一些问题。核心问题是握手中的头错误地将“协议”大写,如果此头不是逐字节正确的,大多数BitTorrent实现将丢弃TCP连接
下面是一个稍微整理过的代码版本:
相关问题 更多 >
编程相关推荐