我正在尝试实现以下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(...)在正确的本地地址和端口上建立服务器来读取服务器发回给我的任何内容?
尚方宝剑之说
相关分类