我有一个 PC 程序通过 UDP 从 20 个自定义硬件盒接收数据。这些盒子中的每一个都不断地向 PC 上的单个 UDP 套接字发送 UDP 消息。这些消息都包含 10 - 150 字节的数据,每个单元在 12 秒内发送大约 20 条消息。
测试表明 PC 遗漏了一些消息。网络上的盒子越少,错过的消息就越少。
长期的解决方案是在硬件中缓冲数据,并让 PC 根据需要通过 TCP 检索数据,但我需要在短期内解决/最小化丢失消息的问题,直到可以部署该解决方案。想法包括: - 升级 PC - 在传输之前过滤掉不必要的消息 - 将硬件中单独的 UDP 消息组合成一个更大的消息 - 在 PC 中使用多个套接字来接收消息
我正在寻找有关这些想法的反馈,以及我们可能错过的任何反馈。
接收程序是一个运行 Indy9 的 C++Builder 程序。