情况:
我正在从事一个高级设计项目,该项目涉及通过关联都位于同一WIFI网络上的许多设备的音频来计算信号源。这些设备使用REST API交换信息。
该体系结构是主从设备,其中主设备将从所有从设备请求音频。现在,从属单元需要主控单元的IP。然后,他们向将其IP,位置等存储在列表中的主机打个招呼。
我想要的是
我希望从机具有某种自动发现主机IP的方式。我认为我并不真正在乎安全性。做这个的最好方式是什么?
有没有惯用的方式做到这一点?
我想我可能对Google的说法不正确
我考虑过的解决方案:
1.为所有(或仅主设备)分配静态IP。
-不理想,因为它只能在一台路由器上运行
-不光滑
答案 0 :(得分:0)
- 主单元在硬编码端口上侦听,小兵在后面广播IP。
是的,使用众所周知的端口集合是解决此问题的标准方法。
我会稍微改变一下您的方法。奴隶比主人多,所以主人应该广播。一个小兵可以在上电时发送一个(或几个)广播,以鼓励主人立即回复。但是随着时间和时间的流逝,主人应该是主要负责保持人口同步的人。
一个奴才应该记住最近主机的IP,并在启动时尝试对其进行单播。
请考虑使用以下格式的数据包格式:{magic_number,版本,start_time,num_minions,optional_list_of_minions}
奴才列表将包括{ip_addr,time_of_last_transaction},如果该列表不再适合某些有限大小的UDP数据包,则将为空。奴才可以通过注意到start_time更改来检测主重启,并在重启后立即重新连接。请务必随机抖动您的延迟计时器,这样我们就不会看到一群小兵。