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 检索特定的错误代码。
错误代码 | 含义 |
---|---|
在使用此函数之前,必须成功调用 WSAStartup 。 | |
网络子系统发生故障。 | |
name 或 namelen 参数不在用户地址空间的有效部分,或者 namelen 参数太小。 | |
阻止 Windows 套接字 1.1 调用正在进行,或者服务提供商仍在处理回调函数。 | |
套接字未连接。 | |
:描述符不是套接字。 |
注解
getpeername 函数检索连接到套接字 的对等方的地址,并将地址存储在由 name 参数标识的 SOCKADDR 结构中。 此函数适用于任何地址系列,并且只返回套接字连接到的地址。 getpeername 函数只能在连接的套接字上使用。
对于数据报套接字,将仅返回在上一个 连接 调用中指定的对等方的地址。 getpeername 不会返回由上一个 sendto 调用指定的任何地址。
调用时, namelen 参数包含 名称 缓冲区的大小(以字节为单位)。 返回时, namelen 参数包含返回 的名称 参数的实际大小(以字节为单位)。
Windows Phone 8:Windows Phone 8 及更高版本上的 Windows Phone 应用商店应用支持此函数。
Windows 8.1和Windows 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) |
Library | Ws2_32.lib |
DLL | Ws2_32.dll |