我正在研究一种通信协议,该协议应该通过在本地网络上广播/多播对等方的地址来支持自我配置。直观的方法是广播地址,但事实证明,很难可靠地找出当前机器的本地 IP 地址(取决于配置,您可能会得到“127.0.0.1”或另一个无用的地址) .
另一种方法是不在广播消息中包含主机地址,而是让接收者调用recvfrom
其套接字,该套接字不仅返回接收到的数据,还返回发送者的地址。正如我所看到的,该调用在 Unix 和 Windows(我的要求之一)以及可能更多的平台上都可用。我现在的问题是,在某些情况下这可能会失败并recvfrom
返回无法访问或无用的地址吗?