estructura de IPV6_MREQ (ws2ipdef.h)

La estructura ipv6_mreq proporciona información del grupo de multidifusión para las direcciones IPv6.

Sintaxis

typedef struct ipv6_mreq {
  IN6_ADDR ipv6mr_multiaddr;
  ULONG    ipv6mr_interface;
} IPV6_MREQ, *PIPV6_MREQ;

Miembros

ipv6mr_multiaddr

Dirección del grupo de multidifusión IPv6.

ipv6mr_interface

Índice de interfaz de la interfaz local en la que se debe unir o quitar el grupo de multidifusión. Si este miembro especifica un índice de interfaz de 0, se usa la interfaz de multidifusión predeterminada.

Comentarios

La estructura ipv6_mreq se usa con direcciones IPv6. La estructura de ipv6_mreq se usa con las opciones de socket IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_GROUP y IPV6_LEAVE_GROUP . Las opciones de socket IPV6_JOIN_GROUP y IPV6_ADD_MEMBERSHIP se definen para que sean las mismas. Las opciones de socket IPV6_LEAVE_GROUP y IPV6_DROP_MEMBERSHIP se definen para que sean las mismas.

En Windows Vista y versiones posteriores, hay un conjunto de opciones de socket disponibles para la programación de multidifusión que admite direcciones IPv6 e IPv4. Estas opciones de socket son independientes de IP y se pueden usar en IPv6 e IPv4. Estas opciones independientes de IP usan el GROUP_REQ y las estructuras de GROUP_SOURCE_REQ y son las opciones de socket preferidas para la programación de multidifusión en Windows Vista y versiones posteriores.

La estructura ipv6_mreq es el equivalente IPv6 de la estructura de ip_mreq basada en IPv4.

La función GetAdaptersAddresses se puede usar para obtener información de índice de interfaz necesaria para el miembro ipv6mr_interface .

La estructura ipv6_mreq y las opciones de socket de nivel IPPROTO_IPV6 que usan esta estructura solo son válidas en datagramas y sockets sin procesar (el tipo de socket debe ser SOCK_DGRAM o SOCK_RAW).

Se recomienda especificar siempre un índice de interfaz IPv6 local en el miembro ipv6mr_interface de la estructura ipv6_mreq , en lugar de usar la interfaz predeterminada. Esto es especialmente importante en equipos con varias interfaces de red y varias direcciones IPv6 públicas.

La interfaz predeterminada usada para la multidifusión IPv6 viene determinada por la pila de redes en Windows. En Windows Vista y versiones posteriores, una aplicación puede determinar la interfaz predeterminada usada para la multidifusión IPv6 mediante la función GetIpForwardTable2 para recuperar la tabla de enrutamiento IPv6. La interfaz de red con el valor más bajo para la métrica de enrutamiento para una dirección de multidifusión IPv6 de destino (el bloque de direcciones IPv6 FF00::/8) es la interfaz predeterminada para la multidifusión IPv6. La tabla de enrutamiento también se puede mostrar desde el símbolo del sistema con el siguiente comando:

impresión de ruta

La opción de socket IPV6_MULTICAST_IF se puede usar para establecer la interfaz predeterminada para enviar paquetes de multidifusión IPv6. Esta opción de socket no cambia la interfaz predeterminada usada para recibir paquetes de multidifusión IPv6.

Una aplicación típica de multidifusión IPv6 usaría la opción de socket IPV6_ADD_MEMBERSHIP o IPV6_JOIN_GROUP con la estructura de ipv6_mreq para unir un grupo de multidifusión y escuchar paquetes de multidifusión en una interfaz específica. La opción de socket IPV6_MULTICAST_IF se usaría para establecer la interfaz para enviar paquetes de multidifusión IPv6 al grupo de multidifusión. El escenario más común sería una aplicación de multidifusión que escucha y envía en la misma interfaz para un grupo de multidifusión. Una aplicación de multidifusión puede usar varios sockets con un socket para escuchar y uno o varios sockets para enviar.

En Microsoft Kit de desarrollo de software de Windows (SDK) publicado para Windows Vista y versiones posteriores, la organización de archivos de encabezado ha cambiado y la estructura de ipv6_mreq se define en el archivo de encabezado Ws2ipdef.h que se incluye automáticamente en el archivo de encabezado Ws2tcpip.h. Los archivos de encabezado Ws2ipdef.h nunca deben usarse directamente.

Nota La estructura derivada de PIP6_MREQ solo se define en el Windows SDK publicado con Windows Vista y versiones posteriores. El GROUP_REQ y las estructuras de GROUP_SOURCE_REQ y son las opciones de socket preferidas para la programación de multidifusión en Windows Vista y versiones posteriores.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado ws2ipdef.h (incluya Ws2tcpip.h)

Consulte también

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

GetIpForwardTable2

Opciones de socket de IPPROTO_IPV6

Programación de multidifusión

Opciones de socket

ip_mreq