我试图弄清楚如何使用IPV6进行相当于IPV4的广播.
我正在创建一个非阻塞的IPV6 UDP套接字.
从侧面广播我实际上只是在端口12346上执行sendto"FF02 :: 1".
在听力方面,我发现我需要加入小组,所以我做了以下事情:
ipv6_mreq membership; memset( &membership.ipv6mr_multiaddr, 0, sizeof( in6_addr ) ); membership.ipv6mr_multiaddr.u.Word[0] = htons( 0xff02 ); membership.ipv6mr_multiaddr.u.Word[7] = htons( 0x0001 ); membership.ipv6mr_interface = 0; if( enable ) { if ( 0 != setsockopt( m_Socket, SOL_SOCKET, IPV6_JOIN_GROUP, (char*)&membership, sizeof( ipv6_mreq ) ) ) { DisplayError(); return false; } }
但是setsockopt总是返回"WSAENOPROTOOPT".为什么?任何人都可以帮我这个吗?我完全失去了.
编辑:我将级别更改为"IPPROTO_IPV6"但现在我得到了"WSAEINVAL".