Próbuję dowiedzieć się, jak zrobić ekwiwalent emisji IPV4 za pomocą IPV6.Lokalny multicast IPV6
Tworzę nieblokujące gniazdo UDP IPV6.
Z nadawania stronie jestem dosłownie robi sendto „FF02 :: 1” na porcie 12346.
Na stronie słuchać odkryłem muszę dołączyć do grupy tak zrobiłem następujące:
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;
}
}
Jednak setsockopt zawsze zwraca "WSAENOPROTOOPT". Czemu? Czy ktoś może mi pomóc w tej sprawie? Mam całkowitą stratę.
Edytuj: Zmieniam poziom na "IPPROTO_IPV6", ale teraz otrzymuję "WSAEINVAL".
@bdonlan: Na zdrowie. Czy gonan zrobił to sam, ale zapomniał :) – Goz