getipv4sourcefilter 函数 (ws2tcpip.h)
getipv4sourcefilter 内联函数检索 IPv4 套接字的多播筛选器状态。
语法
int getipv4sourcefilter(
[in] SOCKET Socket,
[in] IN_ADDR Interface,
[in] IN_ADDR Group,
[out] MULTICAST_MODE_TYPE *FilterMode,
[in, out] ULONG *SourceCount,
[out] IN_ADDR *SourceList
);
参数
[in] Socket
标识多播套接字的描述符。
[in] Interface
接口的本地 IPv4 地址或应加入或删除多播组的接口索引。
此值按网络字节顺序排列。 如果此成员指定 IPv4 地址 0.0.0.0,则使用默认 IPv4 多播接口。
除 IPv4 地址 0.0.) 0.0 之外,0.x.x 块 (第一个八位字节(0.0.0.0 除外)的任何 IP 地址都被视为接口索引。 接口索引是一个 24 位数字, (此范围保留) ,则不使用 0.0.0.0/8 IPv4 地址块。
使用接口索引 1 与 IP 地址 0.0.0.1 相同。
[in] Group
多播组的 IPv4 地址。
[out] FilterMode
指向一个值的指针,用于在函数返回时接收多播组地址的多播筛选器模式。
[in, out] SourceCount
输入时,指向值的指针,该值指示 SourceList 参数指向的缓冲区中将容纳的最大源地址数。
输出时,指向一个值的指针,该值指示与多播筛选器关联的源地址总数。
[out] SourceList
指向缓冲区的指针,用于接收与多播筛选器关联的 IP 地址列表。
如果 SourceCount 在输入时为零,则可能会提供 NULL 指针。
返回值
成功后, getipv4sourcefilter 返回NO_ERROR (0) 。 任何非零返回值都表示失败,可以通过调用 WSAGetLastError 来检索特定的错误代码。
错误代码 | 含义 |
---|---|
可用缓冲区空间不足。 | |
:描述符不是套接字。 |
注解
getipv4sourcefilter 内联函数用于检索 IPv4 套接字的多播筛选器状态。
如果应用事先不知道源列表的大小,它可以 (零进行猜测,例如) 。 如果在完成时 SourceCount 参数包含较大的值,则可以使用足够大的缓冲区重复该操作。
返回时, SourceCount 参数将始终更新为筛选器中的源总数,而 SourceList 参数指向的缓冲区将保留适合的源地址数,最多为作为原始 SourceCount 值传入的数组大小的最小值和筛选器中的源总数。
此函数是 RFC 3678 中定义的多播源筛选器的套接字接口扩展的一部分。 应用可以使用这些函数来检索和设置与套接字关联的多播源地址筛选器。
Windows Phone 8:Windows Phone 8 及更高版本上的 Windows Phone 应用商店应用支持此函数。
Windows 8.1 和 Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持此功能。
要求
最低受支持的客户端 | Windows 8.1,Windows Vista [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | ws2tcpip.h |
Library | Ws2_32.lib |
DLL | Ws2_32.dll |