getpeername 函式 (winsock.h)

getpeername 函式會擷取套接字所連接的對等位址。

語法

int getpeername(
  [in]      SOCKET   s,
  [out]     sockaddr *name,
  [in, out] int      *namelen
);

參數

[in] s

識別已連線套接字的描述項。

[out] name

接收對等位址的 SOCKADDR 結構。

[in, out] namelen

name 參數的大小指標,以位元組為單位。

傳回值

如果沒有發生錯誤, getpeername 會傳回零。 否則,會傳回SOCKET_ERROR的值,而且可以呼叫 WSAGetLastError 來擷取特定的錯誤碼。

錯誤碼 意義
WSANOTINITIALISED
使用此函式之前,必須先進行成功的 WSAStartup 呼叫。
WSAENETDOWN
網路子系統失敗。
WSAEFAULT
名稱namelen 參數不在使用者位址空間的有效部分,或 namelen 參數太小。
WSAEINPROGRESS
封鎖的 Windows Sockets 1.1 呼叫正在進行中,或者服務提供者仍在處理回呼函式。
WSAENOTCONN
未連接此通訊端。
WSAENOTSOCK
描述項不是套接字。

備註

getpeername 函式會擷取連接到套接字對等位址,並將位址儲存在名稱參數所識別的SOCKADDR結構中。 此函式適用於任何位址系列,而且只會傳回套接字連接的位址。 getpeername 函式只能在連接的套接字上使用。

針對數據報套接字,只會傳回上一個 連接 呼叫中指定的對等位址。 先前 的 sendto 呼叫所指定的任何位址都不會由 getpeername 傳回。

呼叫時, namelen 參數包含 名稱 緩衝區的大小,以位元組為單位。 傳回時, namelen 參數包含傳回 之 name 參數的實際大小,以位元組為單位。

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
標頭 winsock.h (包含 Winsock2.h)
程式庫 Ws2_32.lib
Dll Ws2_32.dll

另請參閱

Winsock 函式

Winsock 參考

bind

connect

getsockname

sendto

socket