如何在同一个LAN上findSocket.IO服务器?

我正在开发一个连接同一networking上的设备的应用程序。

任何设备都可以作为服务器,我希望客户端能够自动find服务器,而无需用户手动input服务器的IP地址。

这是我打算这样做的:

  1. find客户端的IP,例如192.168.0.2
  2. 循环192.168.0。(0-> 255)
  3. 尝试连接所有这些IP,直到连接成功

这是正确的方式吗? 我可以做得更快吗? 在同一networking上的IP始终在xxx(0-> 255)范围内?

如果这是相关性,我正在使用Java和JavaScript(Node.js)。

这里有一个select:而不是“迭代”地址范围,并发送单个数据包到每个地址; 你可以考虑把广播发送到整个子网。

换句话说,你的客户只是喊“我在这里”。 服务器“听到”并响应; 类似于DHCP这样的协议。

编辑关于如何对“广播未回答”作出反应的评论:

实际上,你现在正在接近那些使“分布式”计算困难的主题。 有很多问题可以踢, 和许多不同的解决scheme。

它开始于: 一个广播去吗? 或者尝试多次? 也许增加后续广播之间的延迟?

事情是:这里没人能告诉你。 答案很大程度上取决于你的“域”,对你的应用程序的用户来说最有意义。

我的build议是:查看现有的开源产品做类似的事情; 研究他们确定的问题。 以及他们如何处理。 我知道,这是相当广泛的; 而是“宽阔”来源于“整体主题真正广阔”。