作用域:
- 操作系统:MACOS,Windows
- 语言:C++Boost库
描述:
LAN具有N
计算机,带有MacOS和Windows操作系统,其中N ≈ 10
。计算机的IP地址不是静态的,是由网络分配的。在其中一台(机器S(上,正在运行套接字服务器应用程序。在另一台机器(机器C(上,客户端套接字应用程序正在运行。这不是一个静态设置,下次可能是具有不同IP地址的不同计算机。
更新:
服务器机器——是从机。客户端机器就是主机。用户可以在局域网中的任何计算机中安装客户端软件,也可以在局域网内的任何其他计算机中安装服务器软件。服务器负责计算,这需要大量资源,只需将结果发送给客户端。因此,主要思想是:主计算机的用户不应该提供服务器IP地址,但客户端软件应该能够自己发现它。
任务:客户端套接字应用程序不知道服务器应用程序的IP地址,应该能够发现它。解决方案应该是跨平台的(Boost C++(
请提出最佳做法。
我的最佳猜测是:检索所有连接设备的IP地址并socket->send_async_to
它们。如果我在handle_receive
回调中得到答案,这是一个服务器应用程序。但我没有找到一种方法来获取局域网设备的所有IP地址。
提前感谢您的建议和想法。
使用UDP向网络中的所有计算机发送请求。在服务器中编写一个线程来响应udp请求。然后您可以从服务器获取响应并获取套接字ip。