IPV6_MREQ-Struktur (ws2ipdef.h)
Die ipv6_mreq-Struktur stellt Multicastgruppeninformationen für IPv6-Adressen bereit.
Syntax
typedef struct ipv6_mreq {
IN6_ADDR ipv6mr_multiaddr;
ULONG ipv6mr_interface;
} IPV6_MREQ, *PIPV6_MREQ;
Member
ipv6mr_multiaddr
Die Adresse der IPv6-Multicastgruppe.
ipv6mr_interface
Der Schnittstellenindex der lokalen Schnittstelle, auf der die Multicastgruppe verknüpft oder gelöscht werden soll. Wenn dieses Element einen Schnittstellenindex von 0 angibt, wird die Standardmäßige Multicastschnittstelle verwendet.
Hinweise
Die ipv6_mreq-Struktur wird mit IPv6-Adressen verwendet. Die ipv6_mreq-Struktur wird mit den Socketoptionen IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_GROUP und IPV6_LEAVE_GROUP verwendet. Die IPV6_JOIN_GROUP - und IPV6_ADD_MEMBERSHIP Socketoptionen sind als identisch definiert. Die IPV6_LEAVE_GROUP - und IPV6_DROP_MEMBERSHIP Socketoptionen sind als identisch definiert.
Unter Windows Vista und höher sind eine Reihe von Socketoptionen für die Multicastprogrammierung verfügbar, die IPv6- und IPv4-Adressen unterstützen. Diese Socketoptionen sind IP-unabhängig und können sowohl für IPv6 als auch für IPv4 verwendet werden. Diese ip-unabhängigen Optionen verwenden die GROUP_REQ - und die GROUP_SOURCE_REQ-Strukturen und sind die bevorzugten Socketoptionen für die Multicastprogrammierung unter Windows Vista und höher.
Die ipv6_mreq-Struktur ist das IPv6-Äquivalent der IPv4-basierten ip_mreq-Struktur .
Die GetAdaptersAddresses-Funktion kann verwendet werden, um Schnittstellenindexinformationen abzurufen, die für das ipv6mr_interface-Member erforderlich sind.
Die ipv6_mreq-Struktur und die Socketoptionen auf IPPROTO_IPV6 Ebene, die diese Struktur verwenden, sind nur für Datagramm- und Rohsockets gültig (der Sockettyp muss SOCK_DGRAM oder SOCK_RAW sein).
Es wird empfohlen, immer einen lokalen IPv6-Schnittstellenindex im ipv6mr_interface Member der ipv6_mreq-Struktur anzugeben, anstatt die Standardschnittstelle zu verwenden. Dies ist besonders wichtig auf Computern mit mehreren Netzwerkschnittstellen und mehreren öffentlichen IPv6-Adressen.
Die Standardschnittstelle, die für IPv6-Multicast verwendet wird, wird durch den Netzwerkstapel in Windows bestimmt. Unter Windows Vista und höher kann eine Anwendung die Standardschnittstelle für IPv6-Multicast mithilfe der GetIpForwardTable2-Funktion zum Abrufen der IPv6-Routingtabelle ermitteln. Die Netzwerkschnittstelle mit dem niedrigsten Wert für die Routingmetrik für eine IPv6-Ziel-Multicastadresse (der FF00::/8-IPv6-Adressblock) ist die Standardschnittstelle für IPv6-Multicast. Die Routingtabelle kann auch über die Eingabeaufforderung mit dem folgenden Befehl angezeigt werden:
Routendruck
Die IPV6_MULTICAST_IF Socketoption kann verwendet werden, um die Standardschnittstelle zum Senden von IPv6-Multicastpaketen festzulegen. Diese Socketoption ändert nicht die Standardschnittstelle, die zum Empfangen von IPv6-Multicastpaketen verwendet wird.
Eine typische IPv6-Multicastanwendung verwendet die IPV6_ADD_MEMBERSHIP - oder IPV6_JOIN_GROUP Socketoption mit der ipv6_mreq-Struktur , um eine Multicastgruppe zu verknüpfen und auf Multicastpakete auf einer bestimmten Schnittstelle zu lauschen. Die IPV6_MULTICAST_IF Socketoption wird verwendet, um die Schnittstelle so festzulegen, dass IPv6-Multicastpakete an die Multicastgruppe gesendet werden. Das häufigste Szenario wäre eine Multicastanwendung, die auf derselben Schnittstelle für eine Multicastgruppe lauscht und sendet. Mehrere Sockets können von einer Multicastanwendung mit einem Socket zum Lauschen und einem oder mehreren Sockets zum Senden verwendet werden.
Auf dem microsoft Windows Software Development Kit (SDK), das für Windows Vista und höher veröffentlicht wurde, wurde die organization von Headerdateien geändert, und die ipv6_mreq-Struktur wird in der Ws2ipdef.h-Headerdatei definiert, die automatisch in der Headerdatei Ws2tcpip.h enthalten ist. Die Ws2ipdef.h-Headerdateien sollten niemals direkt verwendet werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Kopfzeile | ws2ipdef.h (include Ws2tcpip.h) |