我正在尝试构建一个BitTorrent客户端。我需要发出UDP请求来连接各种跟踪器。为此,我使用net
包并执行此操作:
net.Dial("udp", "udp://hostname:1337/announce")
我收到“地址中的冒号太多”错误。
如果我试试这个:
net.Dial("udp", "hostname:1337/announce")
我收到“提供的nodename或servname,或者不知道”错误。
我该如何解决这个问题?
答案 0 :(得分:2)
因此,您需要将其发送到IP
元文件(port
字段提供的.torrent
地址和announce
。
一旦你打开net.Conn
,你可以conn.Write()
到套接字,类似地conn.Read()
所以你刚刚得到我:
conn, err := net.Dial("udp", announceAddr:Port)
与HTTP
连接时,您是使用/announce
端点,而不是使用UDP
specs解释了要读取和写入的字节数(首先是固定的,但在读取对等列表时会更加动态)。我发现这个链接最有用:https://github.com/naim94a/udpt/wiki/The-BitTorrent-UDP-tracker-protocol