IPV6_MREQ構造体 (ws2ipdef.h)
ipv6_mreq構造体は、IPv6 アドレスのマルチキャスト グループ情報を提供します。
構文
typedef struct ipv6_mreq {
IN6_ADDR ipv6mr_multiaddr;
ULONG ipv6mr_interface;
} IPV6_MREQ, *PIPV6_MREQ;
メンバー
ipv6mr_multiaddr
IPv6 マルチキャスト グループのアドレス。
ipv6mr_interface
マルチキャスト グループを参加または削除する必要があるローカル インターフェイスのインターフェイス インデックス。 このメンバーがインターフェイス インデックス 0 を指定した場合、既定のマルチキャスト インターフェイスが使用されます。
注釈
ipv6_mreq構造体は、IPv6 アドレスと共に使用されます。 ipv6_mreq構造体は、IPV6_ADD_MEMBERSHIP、IPV6_DROP_MEMBERSHIP、IPV6_JOIN_GROUP、およびIPV6_LEAVE_GROUPソケット オプションと共に使用されます。 IPV6_JOIN_GROUPとIPV6_ADD_MEMBERSHIPソケットオプションは同じに定義されています。 IPV6_LEAVE_GROUPとIPV6_DROP_MEMBERSHIPソケットオプションは同じに定義されています。
Windows Vista 以降では、IPv6 アドレスと IPv4 アドレスをサポートするマルチキャスト プログラミングに一連のソケット オプションを使用できます。 これらのソケット オプションは IP に依存せず、IPv6 と IPv4 の両方で使用できます。 これらの IP に依存しないオプションでは 、GROUP_REQ と GROUP_SOURCE_REQ 構造が使用され、Windows Vista 以降でのマルチキャスト プログラミングに推奨されるソケット オプションです。
ipv6_mreq構造体は、IPv4 ベースのip_mreq構造体と同等の IPv6 です。
GetAdaptersAddresses 関数を使用すると、ipv6mr_interface メンバーに必要なインターフェイス インデックス情報を取得できます。
この構造体を使用するipv6_mreq構造体とIPPROTO_IPV6 レベルのソケット オプションは、データグラムと未加工のソケットでのみ有効です (ソケットの種類はSOCK_DGRAMまたはSOCK_RAWする必要があります)。
ローカル IPv6 インターフェイス インデックスは、既定のインターフェイスを使用するのではなく、常に ipv6_mreq 構造体の ipv6mr_interface メンバーで指定することをお勧めします。 これは、複数のネットワーク インターフェイスと複数のパブリック IPv6 アドレスを持つコンピューターで特に重要です。
IPv6 マルチキャストに使用される既定のインターフェイスは、Windows のネットワーク スタックによって決まります。 Windows Vista 以降では、 アプリケーションは GetIpForwardTable2 関数を使用して IPv6 ルーティング テーブルを取得する IPv6 マルチキャストに使用される既定のインターフェイスを決定できます。 宛先 IPv6 マルチキャスト アドレス (FF00::/8 IPv6 アドレス ブロック) のルーティング メトリックの最小値を持つネットワーク インターフェイスは、IPv6 マルチキャストの既定のインターフェイスです。 次のコマンドを使用して、コマンド プロンプトからルーティング テーブルを表示することもできます。
route print
IPV6_MULTICAST_IF ソケット オプションを使用して、IPv6 マルチキャスト パケットを送信する既定のインターフェイスを設定できます。 このソケット オプションでは、IPv6 マルチキャスト パケットの受信に使用される既定のインターフェイスは変更されません。
一般的な IPv6 マルチキャスト アプリケーションでは、 IPV6_ADD_MEMBERSHIP または IPV6_JOIN_GROUP ソケット オプションと ipv6_mreq 構造を使用して、マルチキャスト グループに参加し、特定のインターフェイスでマルチキャスト パケットをリッスンします。 IPV6_MULTICAST_IF ソケット オプションを使用して、IPv6 マルチキャスト パケットをマルチキャスト グループに送信するインターフェイスを設定します。 最も一般的なシナリオは、マルチキャスト グループの同じインターフェイスでリッスンして送信するマルチキャスト アプリケーションです。 マルチキャスト アプリケーションでは、リッスン用のソケットが 1 つ、送信用に 1 つ以上のソケットが含まれた複数のソケットが使用される場合があります。
Windows Vista 以降用にリリースされた Microsoft Windows ソフトウェア開発キット (Windows SDK) (SDK) では、ヘッダー ファイルのorganizationが変更され、ws2ipdef.h ヘッダー ファイルに自動的に含まれる Ws2ipdef.h ヘッダー ファイルでipv6_mreq構造が定義されます。 Ws2ipdef.h ヘッダー ファイルを直接使用しないでください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | ws2ipdef.h (Ws2tcpip.h を含む) |