IN_PKTINFO 结构 (ws2ipdef.h)

in_pktinfo 结构用于存储接收的数据包地址信息,Windows 使用该结构返回有关收到的数据包的信息,还允许指定用于发送数据包的本地 IPv4 地址。

语法

typedef struct in_pktinfo {
  IN_ADDR ipi_addr;
  ULONG   ipi_ifindex;
} IN_PKTINFO, *PIN_PKTINFO;

成员

ipi_addr

LPFN_WSARECVMSG (WSARecvMsg) 函数一起使用时,接收数据包的 IP 标头中的目标 IPv4 地址。 与 WSASendMsg 函数一起使用时,在 IP 标头中设置的本地源 IPv4 地址。

ipi_ifindex

LPFN_WSARECVMSG (WSARecvMsg) 函数一起使用时接收数据包的接口。 与 WSASendMsg 函数一起使用时应发送数据包的接口。

注解

如果在 SOCK_DGRAMSOCK_RAW 类型的套接字上设置了 IP_PKTINFO 套接字选项,则 LPFN_WSARECVMSG (WSARecvMsg) 函数返回的控制数据对象之一将包含用于存储收到的数据包地址信息的 in_pktinfo 结构。

SOCK_DGRAMSOCK_RAW 类型的 IPv4 套接字上,应用程序可以指定用于通过 WSASendMsg 函数发送的本地 IP 地址。 在 WSAMSG 结构中传递到 WSASendMsg 函数的一个控制数据对象可能包含用于指定要用于发送的本地 IPv4 地址 的in_pktinfo 结构。

在为 Windows Vista 及更高版本发布的 Microsoft Windows 软件开发工具包 (SDK) 上,头文件的组织已更改, in_pktinfo 结构在 Ws2tcpip.h 头文件中自动包含在 Ws2tcpip.h 头文件中定义。 永远不应直接使用 Ws2ipdef.h 头文件。

要求

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

另请参阅

适用于 IPv6 Winsock 应用程序的双堆栈套接字

IPPROTO_IP套接字选项

IPV6_PKTINFO

IP_PKTINFO

WSAMSG

LPFN_WSARECVMSG (WSARecvMsg)

WSASendMsg

in6_pktinfo