我找不到这方面的工作示例,所以我将发布一个问题(让我们看看是否可以将其简化为MVP代码示例)。因此,我需要执行mdns查询,我可以使用两个套接字(一个用于发送/另一个用于接收),但到目前为止,我还无法使它与单个套接字一起工作。
因此,我正在执行的步骤是:
枚举主机上的所有接口地址。然后,对于每一位主人:
G 211中添加读/写的套接字
因此,取决于我在步骤2中所做的工作,读写失败:
到达读取通知。
那么我需要绑定到哪个地址呢?另外,由于IP_ADD_MEMBERSHIP参数ip_mreq有接口字段,所以真的需要IP_MULTICAST_IF吗?
发布于 2020-03-26 19:10:48
如果绑定到特定的接口地址(至少在Linux上),您将无法接收多播。如果绑定到多播地址,则无法发送。
您需要做的是绑定到INADDR_ANY,然后在设置IP_ADD_MEMBERSHIP选项时,设置要接收多播数据包的接口地址。如果您有多个接口,您可以为要绑定到的每个接口调用此接口。
https://stackoverflow.com/questions/60874399
复制相似问题