无法发出UDP请求

时间:2017-06-06 13:19:33

标签: go

我正在尝试构建一个BitTorrent客户端。我需要发出UDP请求来连接各种跟踪器。为此,我使用net包并执行此操作:

net.Dial("udp", "udp://hostname:1337/announce")

我收到“地址中的冒号太多”错误。

如果我试试这个:

net.Dial("udp", "hostname:1337/announce")

我收到“提供的nodename或servname,或者不知道”错误。

我该如何解决这个问题?

1 个答案:

答案 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