次の UDP プロトコルを実装しようとしていますが、これにどのようにアプローチすべきかを正確に理解するのに少し苦労しています。
プロトコルは、特定の UDP パケットを特定のサーバーに送信する必要があることを示しています。その後、サーバーは (関連する複数の UDP パケット) をストリーミングして、これも UDP パケットとして私に返します。次のコードを使用して、UDP パケットを正常に送信できました。
connection, error := net.DialUDP("udp", nil, endpoint)
...
if written, error := connection.Write(query.ToBytes()); error != nil {
...
} else {
log.Printf("Successfully wrote %d bytes to %s", written, connection.RemoteAddr())
}
Wireshark を使用して、ネットワーク上で何が起こっているかを調べると、パケットが問題なく送信されたように見えます (ここでの唯一の問題は、サーバーから応答がないことですが、それはこの質問とは関係ありません)。
この場合、サーバーの応答を処理する最善の方法は何ですか? 以前に確立connection
したものを使用してサーバーの応答を読み取ることはできますか (UDP はコネクションレスであるため、これは私にはありそうにありません)、またはnet.ListenUDP(...)
サーバーが返すものを読み取るために正しいローカル アドレスとポートでサーバーを確立するために使用する必要がありますか?