我在网络编程方面几乎没有经验,我正在编写一个多平台系统,该系统要求每个设备能够在同一个 LAN 中找到其他设备。我正在寻找正确的方法来做到这一点,并希望这里的人们可以提供好的建议。以下是我的设计要求:
我使用的是C++,解决方案需要是跨平台的,至少可以在iOS、Windows、Android上运行。
如果可能的话,系统应该很轻,并且在没有特殊设置或网络要求的情况下工作。
以下是我正在考虑的不同方法:
使用 uPnP 协议,但我不是很熟悉,而且似乎没有很多关于该主题的代码示例。
使用传统的socket方式,在每台设备上同时创建Server/Client,并将数据包发送到局域网中的每一个IP。之后手动完成所有操作。如果我错了,请纠正我,如果我向广播地址发送数据包,是否意味着系统会自动将我的数据包发送到子网内的每个 IP?
使用外部服务器,所有客户端都将注册到该服务器,然后从该服务器获取有关其他(已注册)客户端的信息。但是,我不确定每个客户端应该连接哪些信息才能确定它们在同一个 LAN 中。
让我知道我的想法是否有意义。任何意见是极大的赞赏。