共用方式為


GetAcceptExSockaddrs 函式 (winsock.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 結構的指標,會接收連線的本機位址, (傳回的取得ockname 函式所傳回的相同資訊) 。 必須指定此參數。

[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 市集應用程式支援 Windows 8.1、Windows Server 2012 R2 和更新版本。

規格需求

需求
最低支援的用戶端 Windows 8.1、Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2003 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 winsock.h (包括 Mswsock.h)
程式庫 Mswsock.lib
Dll Mswsock.dll

另請參閱

AcceptEx

Winsock 函式

Winsock 參考

getpeername

getsockname

sockaddr