estructura IP_MREQ_SOURCE (ws2ipdef.h)
La estructura de ip_mreq_source proporciona información del grupo de multidifusión para las direcciones IPv4.
Sintaxis
typedef struct ip_mreq_source {
IN_ADDR imr_multiaddr;
IN_ADDR imr_sourceaddr;
IN_ADDR imr_interface;
} IP_MREQ_SOURCE, *PIP_MREQ_SOURCE;
Miembros
imr_multiaddr
Dirección del grupo de multidifusión IPv4.
imr_sourceaddr
Dirección del origen de multidifusión IPv4.
imr_interface
Dirección IPv4 local de la interfaz o el índice de interfaz en el que se debe unir, quitar, bloquear o desbloquear el grupo de multidifusión. Este valor está en orden de bytes de red. Si este miembro especifica una dirección IPv4 de 0.0.0.0, se usa la interfaz de multidifusión IPv4 predeterminada.
Para usar un índice de interfaz de 1 sería el mismo que una dirección IP de 0.0.0.1.
Observaciones
La estructura ip_mreq_source se usa con direcciones IPv4. La estructura de ip_mreq_source se usa con las opciones de socket de IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP y IP_UNBLOCK_SOURCE .
La estructura de ip_mreq_source y las estructuras relacionadas usadas para la programación de multidifusión IPv4 se basan en recomendaciones de IETF en las secciones 4 y 8.1 de RFC 3768. Para obtener más información, vea http://www.ietf.org/rfc/rfc3678.txt.
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. Consulte Programación de multidifusión para obtener más información.
Para las funcionalidades de multidifusión menos configurables con IPv4, use la estructura ip_mreq . Para IPv6, use la estructura ipv6_mreq .
El miembro imr_interface puede ser un índice de interfaz. Cualquier dirección IP del bloque 0.x.x.x (primer octeto de 0), excepto la dirección IP de 0.0.0.0 se trata como un índice de interfaz. Un índice de interfaz es un número de 24 bits. El bloque de direcciones IPv4 0.0.0.0.0/8 no se usa (este intervalo está reservado). La función GetAdaptersAddresses se puede usar para obtener información de índice de interfaz que se usará para el miembro imr_interface .
Se recomienda especificar siempre un índice de interfaz o dirección IPv4 local en el miembro imr_interface de la estructura ip_mreq_source , en lugar de usar la interfaz predeterminada. Esto es especialmente importante en los equipos con varias interfaces de red y varias direcciones IPv4 públicas.
La interfaz predeterminada usada para la multidifusión IPv4 viene determinada por la pila de redes en Windows. Una aplicación puede determinar la interfaz predeterminada usada para la multidifusión IPv4 mediante la función GetIpForwardTable para recuperar la tabla de enrutamiento IPv4. La interfaz de red con el valor más bajo para la métrica de enrutamiento para una dirección IP de destino de 224.0.0.0.0 es la interfaz predeterminada para la multidifusión IPv4. 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 IP_MULTICAST_IF se puede usar para establecer la interfaz predeterminada para enviar paquetes de multidifusión IPv4. Esta opción de socket no cambia la interfaz predeterminada usada para recibir paquetes de multidifusión IPv4.
Una aplicación de multidifusión IPv4 típica usaría la opción de socket IP_ADD_SOURCE_MEMBERSHIP con la estructura ip_mreq_source para unir un grupo de multidifusión y escuchar paquetes de multidifusión en una interfaz específica. La opción de socket IP_MULTICAST_IF se usaría para establecer la interfaz para enviar paquetes de multidifusión IPv4 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 el Kit de desarrollo de software (SDK) de Microsoft Windows publicado para Windows Vista y versiones posteriores, la organización de archivos de encabezado ha cambiado y la estructura de ip_mreq_source 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.
Requisitos
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) |