少“连接”的UDP客户端:net.Dial()在这里不能工作

时间:2019-02-17 16:06:47

标签: go udpclient

我正在为行为不佳的UDP服务器编写客户端:服务器回复来自不可预测的IP地址。

使用net.Dial(),我可以向服务器发送查询并激发预期的响应,但是由于答复来自其他IP地址,因此尝试从net.Conn对象读取它永远不会完成。

在网上,交易看起来像:

client-ip:client-ephemeral-port -> server-ip:server-well-known-port
surprise-ip:server-well-known-port -> client-ip:client-ephemeral-port

当服务器从server-ip而不是surprise-ip答复时,一切都很好。

无法更改服务器行为。

我认为这意味着我将需要放弃net.Dial()并接近底层套接字行为(希望以与操作系统无关的方式)。

我正在寻找有关如何适应服务器行为的示例,但是到目前为止,我发现的各种UDP演练似乎都依赖于5元组的“连接”行为。

0 个答案:

没有答案