2017-06-06 29 views
1

私は外出先でBitTorrentクライアントを構築しようとしています。さまざまなトラッカーに接続するためにUDPリクエストを行う必要があります。UDPリクエストを作成できません

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

私はエラー「アドレスであまりにも多くのコロン」を取得:このために私はnetパッケージを使用してこれを行います。私はこれをしようとした場合

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

は、私が "ノード名もservnameのは、提供、または知られていない" エラーが発生します。

これを修正するにはどうすればよいですか?

+4

ダイヤルはURLではなくIPアドレスを使用します。パス部分はアドレスの一部ではありません。 – JimB

答えて

2

.torrentメタファイル(announceフィールド)のように、IPのアドレスとportに送信する必要があります。

そして、あなたはnet.Connあなたがconn.Write()

conn.Read()ソケットに、同様にあなたはちょうど約私が得ていることができます開く一度: HTTPで接続する場合

conn, err := net.Dial("udp", announceAddr:Port) 

、ええ、あなたが/announceエンドポイントを使用します、ではありませんUDP

specsは、読み書きするバイト数を説明しています(最初は固定されていますが、後で動的ピアリストを読むことになるとき)。私はこのリンクを見つけました。最も有用なものです。https://github.com/naim94a/udpt/wiki/The-BitTorrent-UDP-tracker-protocol

関連する問題