这个问题是解决上一个问题“如何使用 Javascript 获取本地网络中所有有效 IP 地址的列表?”的新尝试。(请参阅如何使用 Javascript 获取本地网络中所有有效 IP 地址的列表?)
为了避免需要测试数百万个地址,我想知道是否有可能遵循以下场景(在这种情况下,忘记最初帖子的 JavaScriipt 约束,并假设使用更通用的语言,比如 C++ 和 I/O 库像Boost Asio):
a) 服务器“S”在 LAN 中唤醒以提供一些服务,例如监听端口 X,并获得一个随机地址(即 A1 = 192.168.1.35)。
b) 需要服务的客户端“C”在同一个 LAN 中唤醒,获取其他随机地址(例如 A2 = 192.168.1.40)。
“C”不知道获取服务的“S”地址。所以,两个问题:
1.- “S”和“C”可以自己知道自己的地址(A1 和 A2)吗?
2.- “C”可以在给定端口 X 中向 LAN 发送广播请求吗?有些是“这里是 P2,有人在 X 中?”
显然,如果“S”在给定端口监听,并且可以得到消息,他们可以反过来广播自己的方向;所以如果“C”正在监听,可以得到服务器的地址。