Я пытаюсь выяснить, как сделать эквивалент трансляции IPV4 с использованием IPV6.
Я создаю неблокирующий сокет IPV6 UDP.
Со стороны вещания я буквально просто отправляю "FF02 :: 1" на порт 12346.
Со стороны прослушивания я обнаружил, что мне нужно присоединиться к группе, поэтому я сделал следующее:
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".