我有一个在 Linux 上运行的网络应用程序。我想做的是让我的应用程序能够宣布它在 LAN 中的存在,然后通知其他应用程序一些更改。因为我不知道我的应用程序有多少实例已经在 LAN 中的其他主机上运行,所以我无法使用 SCTP,多播通信是唯一的方法(或者您可能知道其他解决方案?)。
我想通过多播地址发送的结构具有固定大小(320 字节)并包含二进制数据,实际上是数字和位标志的结构。
我想知道是否有任何众所周知的编程技术可以使 UDP 通信更加可靠。我只弄清楚了两件事:
- 我丢弃了 recvmsg() 收到的所有小于 320 字节的数据包。
- 我用众所周知的页眉和页脚包围每个数据包,然后每次收到新消息时检查它们,但是数据包仍然可能在中间的某个地方损坏,对吗?
编辑: 我找到了一个 PGN 协议,但已知唯一的Linux 实现适用于 x86。这对我来说是部分解决方案,因为我也想在 ARM 架构上运行我的程序