getAcceptExSockaddrs 函式 (mswsock.h)

GetAcceptExSockaddrs 函式會剖析從 AcceptEx 函式呼叫取得的數據,並將本機和遠端地址傳遞至 sockaddr 結構。

注意 此函式是 Windows Sockets 規格的 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 函式。

注意GetAcceptExSockaddrs 函式的函式指標必須在運行時間取得,方法是呼叫 WSAIoctl 函式並指定 SIO_GET_EXTENSION_FUNCTION_POINTER opcode。 傳遞至 WSAIoctl 函式的輸入緩衝區必須包含 WSAID_GETACCEPTEXSOCKADDRS,這是全域唯一標識碼 (GUID) ,其值可識別 GetAcceptExSockaddrs 擴充函式。 成功時, WSAIoctl 函式傳回的輸出會包含 GetAcceptExSockaddrs 函式的指標。 WSAID_GETACCEPTEXSOCKADDRS GUID 定義於 Mswsock.h 頭檔中。
 

Windows Phone 8:Windows Phone 8 和更新版本上的 Windows Phone Store 應用程式支援此函式。

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)
程式庫 Mswsock.lib
Dll Mswsock.dll

另請參閱

AcceptEx

Winsock 函式

Winsock 參考

getpeername

getsockname

sockaddr