大家好,我正在實施一個 bittorrent 客戶端,但遇到了障礙。這是我從僅處理 ipv6 的特定跟蹤器獲取對等串列的代碼。
tracker = "udp://tracker.birkenwald.de:6969/announce"
parse = urlparse(tracker)
ip, port = (socket.getaddrinfo(parse.hostname, parse.port, 0, 0, socket.SOL_TCP))[0][4][0], parse.port
#ip, port = 2001:1b10:1000:8101:0:242:ac11:2,6969
sock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
sock.sendto(tracker_connection.bytestringForConnecting(), (ip, port))
#bytestringForConnecting() is a function for getting the byte version as written in the protocol.
得到以下錯誤
Traceback (most recent call last):
File "main.py", line 17, in <module>
t.get_peer_list()
File "/home/aditya/Desktop/CN/CN PROJECT/tracker.py", line 21, in get_peer_list
self.udp_request(url)
File "/home/aditya/Desktop/CN/CN PROJECT/tracker.py", line 64, in udp_request
sock.sendto(tracker_connection.bytestringForConnecting(), (ip, port))
socket.gaierror: [Errno -9] Address family for hostname not supported
uj5u.com熱心網友回復:
python套接字檔案說 AF_INET6 地址必須作為 4 個值的元組傳遞。如果您傳遞一個 2 元組,它將被解釋為 AF_INET (IPv4) 地址。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/317909.html
下一篇:通過套接字發送傳感器資料
