假设源 A 使用 UDP 向我发送未知数量的消息。我怎样才能拦截所有这些消息?这是完整的场景:
- 发送 7 条消息
- 等待他们的 ACK
- 处理 ACK
- 发送另一批
- 重复...
问题:(1)我不知道有多少消息到达,有些可能会丢失,有些会重复,(2)我可能稍后会做其他事情,所以我不能永远等待。
假设源 A 使用 UDP 向我发送未知数量的消息。我怎样才能拦截所有这些消息?这是完整的场景:
问题:(1)我不知道有多少消息到达,有些可能会丢失,有些会重复,(2)我可能稍后会做其他事情,所以我不能永远等待。
这可能对您有所帮助:http : //wiki.python.org/moin/UdpCommunication 似乎您可以以非常简单的方式发送消息。当然,您必须构建全部 7 条消息,然后围绕它重新启动逻辑。
您可以让消息循环不断地侦听和处理接收到的数据包并将它们放在队列中,然后在您闲暇时阅读它们......
但是,您需要实现自己的 ACK,同时考虑到丢失和重复的可能性(如果您的应用程序担心它们)。这引出了一个问题 - 为什么不使用 TCP?