我正在尝试在多个ad-hoc节点之间的无线广播信道上创建共享总线。每个节点可以随时传输,并且所有节点都需要能够相互听到。这听起来像是多播的工作,特别是OpenPGM(参见this question其他人的要求),除了我读过的关于OpenPGM的内容是它无法处理多个广播公司多播地址(显然,NACK会丢失,但我不是专家,如果有人想纠正我,请随意!)。由于OpenPGM可能不起作用,我决定长时间地考虑我对库的最低要求。他们在这里:
最后一点很重要;消息可能丢失,我不在乎。这就是“合理可靠”的地方;我不希望图书馆向我发送不完整的消息,我宁愿他们在一段合理的超时期后被丢弃。我也不在乎它是否无法保证传递任何信息;如果需要,我可以在顶部建立更强大的可靠性保证。基本上,它只需要确保如果我收到消息,那么它就完成了。它不必保证任何其他内容。
那么,有什么类似的吗?或者我应该自己编写吗?
编辑:为了澄清,我的消息可能比单个UDP数据包可以处理的大。如果不是这种情况,我会直接进行UDP广播,并提供某种号码方案,让我知道如果我收到了一个数据包。这就是为什么我正在寻找一个可以为我处理它的库。
还要注意我的节点本身不可靠;他们失去连接,并定期重新启动。这很少发生,但它会发生。如果一个图书馆因同伴死亡而挂断,那么我就无法使用它了。
感谢您的帮助!