getAcceptExSockaddrs 函数 (mswsock.h)

GetAcceptExSockaddrs 函数分析通过调用 AcceptEx 函数获得的数据,并将本地和远程地址传递给 sockaddr 结构。

注意 此函数是 Windows 套接字规范的特定于 Microsoft 的扩展。

 

语法

void GetAcceptExSockaddrs(
  [in]  PVOID    lpOutputBuffer,
  [in]  DWORD    dwReceiveDataLength,
  [in]  DWORD    dwLocalAddressLength,
  [in]  DWORD    dwRemoteAddressLength,
  [out] sockaddr **LocalSockaddr,
  [out] LPINT    LocalSockaddrLength,
  [out] sockaddr **RemoteSockaddr,
  [out] LPINT    RemoteSockaddrLength
);

参数

[in] lpOutputBuffer

指向缓冲区的指针,该缓冲区接收由 AcceptEx 调用生成的连接上发送的第一个数据块。 必须是传递给 AcceptEx 函数的同一 lpOutputBuffer 参数。

[in] dwReceiveDataLength

缓冲区中用于接收第一个数据的字节数。 此值必须等于传递给 AcceptEx 函数的 dwReceiveDataLength 参数。

[in] dwLocalAddressLength

为本地地址信息保留的字节数。 此值必须等于传递给 AcceptEx 函数的 dwLocalAddressLength 参数。

[in] dwRemoteAddressLength

为远程地址信息保留的字节数。 此值必须等于传递给 AcceptEx 函数的 dwRemoteAddressLength 参数。

[out] LocalSockaddr

指向 sockaddr 结构的指针,该结构接收连接的本地地址 (由 getsockname 函数) 返回的相同信息。 必须指定此参数。

[out] LocalSockaddrLength

本地地址的大小(以字节为单位)。 必须指定此参数。

[out] RemoteSockaddr

指向 sockaddr 结构的指针,该结构接收连接的远程地址 (getpeername 函数) 将返回的相同信息。 必须指定此参数。

[out] RemoteSockaddrLength

本地地址的大小(以字节为单位)。 必须指定此参数。

返回值

备注

GetAcceptExSockaddrs 函数与 AcceptEx 函数一起使用,用于将套接字接收的第一个数据分析到本地地址和远程地址。 AcceptEx 函数以内部格式返回本地和远程地址信息。 如果需要包含本地或远程地址的 sockaddr 结构,应用程序开发人员需要使用 GetAcceptExSockaddrs 函数。

注意必须在运行时通过调用 WSAIoctl 函数并指定SIO_GET_EXTENSION_FUNCTION_POINTER操作码来获取 GetAcceptExSockaddrs 函数的函数指针。 传递给 WSAIoctl 函数的输入缓冲区必须包含 WSAID_GETACCEPTEXSOCKADDRS,这是一个全局唯一标识符, (GUID) 其值标识 GetAcceptExSockaddrs 扩展函数。 成功后, WSAIoctl 函数返回的输出包含指向 GetAcceptExSockaddrs 函数的 指针。 WSAID_GETACCEPTEXSOCKADDRS GUID 在 Mswsock.h 头文件中定义。
 

Windows Phone 8:Windows Phone 8 及更高版本上的 Windows Phone 应用商店应用支持此函数。

Windows 8.1Windows Server 2012 R2:Windows 8.1、Windows Server 2012 R2 及更高版本的 Windows 应用商店应用支持此函数。

要求

要求
最低受支持的客户端 Windows 8.1、Windows Vista [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mswsock.h (包括 Mswsock.h)
Library Mswsock.lib
DLL Mswsock.dll

另请参阅

AcceptEx

Winsock 函数

Winsock 参考

getpeername

getsockname

sockaddr