【发布时间】:2017-06-24 07:33:35
【问题描述】:
我正在开发一个连接同一网络上的设备的应用。
任何设备都可以作为服务器,我希望客户端能够自动找到服务器,而无需用户手动输入服务器的 IP 地址。
我打算这样做:
- 找到客户端的IP,例如192.168.0.2
- 循环通过 192.168.0.(0->255)
- 尝试连接所有这些 IP,直到连接成功
这是正确的方法吗?我可以做得更快吗?同一个网络的IP总是在x.x.x.(0->255)的范围内吗?
如果相关,我同时使用 Java 和 JavaScript(Node.js)。
【问题讨论】:
-
正如@GhostCat 所写,广播会命中局域网上的每一台机器,但它也会中断局域网上的每一台机器,这不一定是可取的。为了解决这个问题,您可以使用多播,这是对一组机器的广播,这些机器侦听发送到多播组的数据包。它是广播的选择性。如果您有主机订阅多播组,那么只有这些主机会被多播流量中断。服务器可以订阅多播组。
标签: javascript java node.js networking socket.io