IP_MREQ_SOURCE-Struktur (ws2ipdef.h)
Die ip_mreq_source-Struktur stellt Multicastgruppeninformationen für IPv4-Adressen bereit.
Syntax
typedef struct ip_mreq_source {
IN_ADDR imr_multiaddr;
IN_ADDR imr_sourceaddr;
IN_ADDR imr_interface;
} IP_MREQ_SOURCE, *PIP_MREQ_SOURCE;
Member
imr_multiaddr
Die Adresse der IPv4-Multicastgruppe.
imr_sourceaddr
Die Adresse der IPv4-Multicastquelle.
imr_interface
Die lokale IPv4-Adresse der Schnittstelle oder der Schnittstellenindex, für den die Multicastgruppe verknüpft, gelöscht, blockiert oder entsperrt werden soll. Dieser Wert befindet sich in der Reihenfolge des Netzwerkbytes. Wenn dieses Member die IPv4-Adresse 0.0.0.0 angibt, wird die Standard-IPv4-Multicastschnittstelle verwendet.
Die Verwendung eines Schnittstellenindexes von 1 wäre identisch mit einer IP-Adresse von 0.0.0.1.
Hinweise
Die ip_mreq_source-Struktur wird mit IPv4-Adressen verwendet. Die ip_mreq_source-Struktur wird mit den Socketoptionen IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP und IP_UNBLOCK_SOURCE verwendet.
Die ip_mreq_source Struktur und verwandte Strukturen, die für die IPv4-Multicastprogrammierung verwendet werden, basieren auf IETF-Empfehlungen in den Abschnitten 4 und 8.1 von RFC 3768. Weitere Informationen finden Sie unter http://www.ietf.org/rfc/rfc3678.txt.
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. Weitere Informationen finden Sie unter Multicastprogrammierung .
Für weniger konfigurierbare Multicastfunktionen mit IPv4 verwenden Sie die ip_mreq-Struktur . Verwenden Sie für IPv6 die ipv6_mreq-Struktur .
Das imr_interface-Members kann ein Schnittstellenindex sein. Jede IP-Adresse im Block 0.x.x.x (erstes Oktett von 0) mit Ausnahme der IP-Adresse 0.0.0.0 wird als Schnittstellenindex behandelt. Ein Schnittstellenindex ist eine 24-Bit-Zahl. Der IPv4-Adressblock 0.0.0.0/8 wird nicht verwendet (dieser Bereich ist reserviert). Die GetAdaptersAddresses-Funktion kann verwendet werden, um Schnittstellenindexinformationen abzurufen, die für das imr_interface-Member verwendet werden sollen.
Es wird empfohlen, immer eine lokale IPv4-Adresse oder einen Schnittstellenindex im imr_interface Member der ip_mreq_source-Struktur anzugeben, anstatt die Standardschnittstelle zu verwenden. Dies ist besonders wichtig auf Computern mit mehreren Netzwerkschnittstellen und mehreren öffentlichen IPv4-Adressen.
Die Standardschnittstelle, die für IPv4-Multicast verwendet wird, wird durch den Netzwerkstapel in Windows bestimmt. Eine Anwendung kann die Standardschnittstelle für IPv4-Multicast mithilfe der GetIpForwardTable-Funktion ermitteln, um die IPv4-Routingtabelle abzurufen. Die Netzwerkschnittstelle mit dem niedrigsten Wert für die Routingmetrik für eine Ziel-IP-Adresse von 224.0.0.0 ist die Standardschnittstelle für IPv4-Multicast. Die Routingtabelle kann auch über die Eingabeaufforderung mit dem folgenden Befehl angezeigt werden:
Routendruck
Die IP_MULTICAST_IF Socketoption kann verwendet werden, um die Standardschnittstelle zum Senden von IPv4-Multicastpaketen festzulegen. Diese Socketoption ändert nicht die Standardschnittstelle, die zum Empfangen von IPv4-Multicastpaketen verwendet wird.
Eine typische IPv4-Multicastanwendung verwendet die IP_ADD_SOURCE_MEMBERSHIP Socketoption mit der ip_mreq_source-Struktur , um eine Multicastgruppe zu verknüpfen und auf Multicastpakete auf einer bestimmten Schnittstelle zu lauschen. Die IP_MULTICAST_IF Socketoption wird verwendet, um die Schnittstelle so festzulegen, dass IPv4-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.
Im 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 ip_mreq_source 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
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) |