estrutura IPV6_MREQ (ws2ipdef.h)
A estrutura ipv6_mreq fornece informações de grupo multicast para endereços IPv6.
Sintaxe
typedef struct ipv6_mreq {
IN6_ADDR ipv6mr_multiaddr;
ULONG ipv6mr_interface;
} IPV6_MREQ, *PIPV6_MREQ;
Membros
ipv6mr_multiaddr
O endereço do grupo multicast IPv6.
ipv6mr_interface
O índice de interface da interface local na qual o grupo multicast deve ser unido ou descartado. Se esse membro especificar um índice de interface 0, a interface multicast padrão será usada.
Comentários
A estrutura ipv6_mreq é usada com endereços IPv6. A estrutura ipv6_mreq é usada com as opções de soquete IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_GROUP e IPV6_LEAVE_GROUP . As opções de soquete IPV6_JOIN_GROUP e IPV6_ADD_MEMBERSHIP são definidas como as mesmas. As opções de soquete IPV6_LEAVE_GROUP e IPV6_DROP_MEMBERSHIP são definidas como as mesmas.
No Windows Vista e posteriores, um conjunto de opções de soquete está disponível para programação multicast que dá suporte a endereços IPv6 e IPv4. Essas opções de soquete são independentes de IP e podem ser usadas no IPv6 e no IPv4. Essas opções independentes de IP usam o GROUP_REQ e as estruturas de GROUP_SOURCE_REQ e são as opções de soquete preferenciais para programação multicast no Windows Vista e posterior.
A estrutura ipv6_mreq é o equivalente IPv6 da estrutura de ip_mreq baseada em IPv4.
A função GetAdaptersAddresses pode ser usada para obter informações de índice de interface necessárias para o membro ipv6mr_interface .
A estrutura ipv6_mreq e as opções de soquete de nível IPPROTO_IPV6 que usam essa estrutura só são válidas em soquetes brutos e datagramas (o tipo de soquete deve ser SOCK_DGRAM ou SOCK_RAW).
É recomendável que um índice de interface IPv6 local sempre seja especificado no membro ipv6mr_interface da estrutura ipv6_mreq , em vez de usar a interface padrão. Isso é particularmente importante em computadores com vários adaptadores de rede e vários endereços IPv6 públicos.
A interface padrão usada para multicast IPv6 é determinada pela pilha de rede no Windows. No Windows Vista e posterior, um aplicativo pode determinar a interface padrão usada para multicast IPv6 usando a função GetIpForwardTable2 para recuperar a tabela de roteamento IPv6. O adaptador de rede com o menor valor para a métrica de roteamento para um endereço multicast IPv6 de destino (o bloco de endereços IPv6 FF00::/8) é a interface padrão para multicast IPv6. A tabela de roteamento também pode ser exibida no prompt de comando com o seguinte comando:
imprimir rota
A opção de soquete IPV6_MULTICAST_IF pode ser usada para definir a interface padrão para enviar pacotes multicast IPv6. Essa opção de soquete não altera a interface padrão usada para receber pacotes multicast IPv6.
Um aplicativo multicast IPv6 típico usaria a opção de soquete IPV6_ADD_MEMBERSHIP ou IPV6_JOIN_GROUP com a estrutura ipv6_mreq para unir um grupo multicast e escutar pacotes multicast em uma interface específica. A opção IPV6_MULTICAST_IF soquete seria usada para definir a interface para enviar pacotes multicast IPv6 para o grupo multicast. O cenário mais comum seria um aplicativo multicast que escuta e envia na mesma interface para um grupo multicast. Vários soquetes podem ser usados por um aplicativo multicast com um soquete para escuta e um ou mais soquetes para envio.
No Microsoft Software Development Kit do Windows (SDK do Windows) (SDK) lançado para Windows Vista e posterior, a organização de arquivos de cabeçalho foi alterada e a estrutura ipv6_mreq é definida no arquivo de cabeçalho Ws2ipdef.h, que é incluído automaticamente no arquivo de cabeçalho Ws2tcpip.h. Os arquivos de cabeçalho Ws2ipdef.h nunca devem ser usados diretamente.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | ws2ipdef.h (include Ws2tcpip.h) |