小编pcb*_*pcb的帖子

在lan上向所有人广播

我正在尝试联系LAN上的所有人,以发现哪些设备当前正在使用ip并运行我的服务.运行该服务的每台设备都会知道哪些设备上线时连接了哪些设备.我有基本的网络经验(tcp/udp),但我没有做更多复杂的通信包.我想发布我迄今为止所研究/尝试的内容,并获得一些专家回复,以限制我对未来潜在解决方案的试错时间.

要求:

  • 目前使用java,但需要跨语言通信.
  • 必须在可接受的时间范围内(最多几秒钟)完成,最好是可靠的.
  • 我想对广播和后来的通信使用类似的技术,以避免引入多个包/技术的额外复杂性.
  • 目前我正计划通过心跳来识别仍然连接的ip,但我可能希望以后继续向LAN广播.
  • 我有兴趣为这项服务使用跨语言rpc通信,但这种技术不一定要使用它.
  • 以后的通信(非广播)必须可靠.

研究和尝试的事情:

  • UDP - 担心跨语言交流,缺乏可靠的交付,并且会添加另一种通信方式,而不是使用下面的解决方案.如果能找到另一个更完整的解决方案,我宁愿避免使用它.

  • Apache Thrift - 目前我已经尝试迭代所有潜在的ip并尝试连接到每个.这太慢了,因为每次尝试连接的超时都很长(当我打开时).我还没有找到任何广播选项.

  • ZeroMQ - 使用基本的zeromq完成了很少的测试,但我过去只使用过它的包装器.pub/sub功能似乎对这种情况很有用,但我担心订阅lan中的每个ip.还担心在尝试订阅尚未运行服务的ip时会发生什么.

根据我的要求,这些建议中的任何一个看起来都会比其他建议更好吗?您对可能更好的技术有任何其他建议吗?

谢谢.

java udp thrift zeromq

6
推荐指数
1
解决办法
1805
查看次数

标签 统计

java ×1

thrift ×1

udp ×1

zeromq ×1