我很好奇内核在使用INADDR_ANY时如何选择接口加入 mcast 组:
struct ip_mreq req;
req.imr_multiaddr.s_addr = inet_addr(someMcastIP);
req.imr_interface.s_addr = htonl(INADDR_ANY);
if ((setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void*) &req, sizeof(req))) < 0) {
...
}
假设计算机上的接口很少。 内核如何选择?
它使用静态 IP 路由表来确定成员身份请求的发送位置。