Sto cercando di capire come fare l'equivalente di una trasmissione IPV4 usando IPV6.IPV6 link multicasting locale
Sto creando un socket UDP IPV6 non bloccante.
Dal broadcasting parte sto letteralmente solo facendo un sendto "FF02 :: 1" sulla porta 12346.
Sul lato ascoltare ho scoperto che ho bisogno di unirsi al gruppo così ho fatto la seguente:
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;
}
}
Tuttavia setockopt restituisce sempre "WSAENOPROTOOPT". Perché? Qualcuno può aiutarmi su questo? Sono completamente perso.
Modifica: cambio il livello in "IPPROTO_IPV6", ma ora ho un "WSAEINVAL".
@bdonlan: Acclamazioni. Era Gonan farlo da solo ma ho dimenticato :) – Goz