在Windows上创建IPv6 UDP套接字以从任何接口

时间:2017-05-23 07:57:59

标签: windows sockets udp ipv6 multicast

我希望有一个IPv6 UDP套接字,可以使用链接本地地址从任何本地接口接收广播/多播消息。

在Linux中将它绑定到in6addr_any就足够了,但在Windows中,在使用setsockopt()+ IPV6_JOIN_GROUP加入多播组之前,您将不会收到任何多播。在此选项期间必须提供接口索引的问题。但这很不方便。有没有办法从Windows中的任何接口接收多播?

UPD:我使用目标地址ff02 :: 1(所有节点地址)

1 个答案:

答案 0 :(得分:0)

对于IPv4,网络接口的索引是IP地址;对于 IPv6,网络接口的索引由方法 nc: Address already in use 返回。

下面的代码展示了如何在所有网络接口上监听多播:

socket.getaddrinfo