GROUP_FILTER 结构 (ws2ipdef.h)

GROUP_FILTER结构为多播 IPv6 或 IPv4 地址提供多播筛选参数。

语法

typedef struct group_filter {
  ULONG               gf_interface;
  SOCKADDR_STORAGE    gf_group;
  MULTICAST_MODE_TYPE gf_fmode;
  ULONG               gf_numsrc;
  SOCKADDR_STORAGE    gf_slist[1];
} GROUP_FILTER, *PGROUP_FILTER;

成员

gf_interface

要筛选的多播组的本地接口的接口索引。

gf_group

应筛选的多播地址组。 这可能是 IPv6 或 IPv4 多播地址。

gf_fmode

多播筛选模式。

此成员可以是 Ws2ipdef.h 头文件中定义的 MULTICAST_MODE_TYPE 枚举类型的值之一。 此成员确定是否应包括或排除 gf_numsrc 成员中的 IP 地址列表。

含义
MCAST_INCLUDE
筛选器包含要包括的 IP 地址列表。
MCAST_EXCLUDE
筛选器包含要排除的 IP 地址列表。

gf_numsrc

gf_slist 成员中的多播筛选器源地址条目数。

gf_slist[1]

SOCKADDR_STORAGE结构的数组,指定要包含或排除的多播源地址。 这些 IP 地址可以是 IPv6 或 IPv4 地址,但它们必须是与 gf_group 成员中指定的 地址 (IPv6 或 IPv4) 相同的地址系列。

注解

GROUP_FILTER结构用于 IPv6 或 IPv4 多播地址。 GROUP_FILTER 结构作为 SIOCGMSFILTERSIOCSMSFILTER IOCTL 的参数传递。

用于多播编程 的GROUP_FILTER 结构和相关结构基于 RFC 3768 第 5 节和第 8.2 节中的 IETF 建议。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc3678.txt

在 Windows Vista 及更高版本上,一组套接字选项可用于支持 IPv6 和 IPv4 地址的多播编程。 这些套接字选项与 IP 无关,可用于 IPv6 和 IPv4。 这些与 IP 无关的选项使用 GROUP_REQGROUP_SOURCE_REQ 结构,是 Windows Vista 及更高版本上多播编程的首选套接字选项。

GetAdaptersAddresses 函数可用于获取gf_interface成员所需的接口索引信息。

GROUP_FILTER 结构和使用此结构的 Ioctl 仅在数据报和原始套接字上有效, (套接字类型必须SOCK_DGRAMSOCK_RAW) 。

GROUP_FILTER结构在 Ws2ipdef.h 头文件中定义,该文件自动包含在 Ws2tcpip.h 头文件中。 不应直接使用 Ws2ipdef.h 头文件。

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 ws2ipdef.h (包括 Ws2tcpip.h)

另请参阅

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

MULTICAST_MODE_TYPE

多播编程

SOCKADDR_STORAGE

套接字选项

ip_mreq

ip_msfilter

ipv6_mreq