Share via


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_MEMBERSHIPIPV6_DROP_MEMBERSHIPIPV6_JOIN_GROUPIPV6_LEAVE_GROUP套接字選項搭配使用。 IPV6_JOIN_GROUPIPV6_ADD_MEMBERSHIP套接字選項會定義為相同。 IPV6_LEAVE_GROUPIPV6_DROP_MEMBERSHIP套接字選項會定義為相同。

在 Windows Vista 和更新版本上,有一組套接字選項可用於支援 IPv6 和 IPv4 位址的多播程序設計。 這些套接字選項與IP無關,可在IPv6和IPv4上使用。 這些IP無關的選項會使用 GROUP_REQGROUP_SOURCE_REQ 結構,而且是Windows Vista和更新版本上多播程式設計慣用的套接字選項。

ipv6_mreq 結構相當於 IPv4 型ip_mreq結構。

GetAdaptersAddresses 函式可用來取得ipv6mr_interface成員所需的介面索引資訊。

ipv6_mreq 結構和使用此結構的IPPROTO_IPV6層級套接字選項只有在數據報和原始套接字上才有效, (套接字類型必須SOCK_DGRAMSOCK_RAW)

建議您一律在 ipv6_mreq 結構的 ipv6mr_interface 成員中指定本機 IPv6 介面索引,而不是使用預設介面。 這在具有多個網路介面和多個公用 IPv6 位址的電腦上特別重要。

用於 IPv6 多播的預設介面是由 Windows 中的網路堆疊所決定。 在 Windows Vista 和更新版本上,應用程式可以使用 GetIpForwardTable2 函式來判斷用於 IPv6 多播的預設介面,以擷取 IPv6 路由表。 目的地 IPv6 多播位址路由計量的最小值網路介面, (FF00::/8 IPv6 位址區塊) 是 IPv6 多播的預設介面。 您也可以使用下列命令,從命令提示字元顯示路由表:

路由列印

IPV6_MULTICAST_IF套接字選項可用來設定預設介面來傳送IPv6多播封包。 此套接字選項不會變更用來接收 IPv6 多播封包的預設介面。

典型的 IPv6 多播應用程式會使用 IPV6_ADD_MEMBERSHIPIPV6_JOIN_GROUP 套接字選項搭配 ipv6_mreq 結構來聯結多播群組,並在特定介面上接聽多播封包。 IPV6_MULTICAST_IF套接字選項可用來設定介面,將 IPv6 多播封包傳送至多播群組。 最常見的案例是多播應用程式,可接聽並傳送多播群組的相同介面。 多播應用程式可能會使用多個套接字來接聽,以及一或多個套接字進行傳送。

在針對 Windows Vista 和更新版本發行的 Microsoft Windows 軟體開發套件 (SDK) 上,頭文件的組織已變更,而且ipv6_mreq結構定義於 Ws2ipdef.h 頭檔中,該文件會自動包含在 Ws2tcpip.h 頭檔中。 不應直接使用 Ws2ipdef.h 頭檔。

注意PIP6_MREQ衍生結構只會定義在 Windows Vista 和更新版本的發行 Windows SDK 上。 GROUP_REQGROUP_SOURCE_REQ結構,是 Windows Vista 和更新版本上多播程式設計慣用的套接字選項。
 

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 ws2ipdef.h (包含 Ws2tcpip.h)

另請參閱

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

GetIpForwardTable2

IPPROTO_IPV6套接字選項

多播程序設計

套接字選項

ip_mreq