LPWSPGETSOCKNAME 回调函数 (ws2spi.h)
LPWSPGetSockName 函数获取套接字的本地名称。
语法
LPWSPGETSOCKNAME Lpwspgetsockname;
int Lpwspgetsockname(
[in] SOCKET s,
[out] sockaddr *name,
[in, out] LPINT namelen,
[out] LPINT lpErrno
)
{...}
参数
[in] s
标识绑定套接字的描述符。
[out] name
指向 sockaddr 结构的指针,该结构用于提供套接字的地址 (名称) 。
[in, out] namelen
输入时,指向一个整数的指针,该整数指示 按名称指向的结构的大小(以字节为单位)。 输出时指示返回的名称的大小(以字节为单位)。
[out] lpErrno
指向错误代码的指针。
返回值
如果未发生错误, LPWSPGetSockName 将返回零。 否则,返回值 SOCKET_ERROR,并在 lpErrno 中提供特定的错误代码。
错误代码 | 含义 |
---|---|
网络子系统失败。 | |
name 或 namelen 参数不是用户地址空间的有效部分,或者 namelen 参数太小。 | |
当回调正在进行时,将调用函数。 | |
:描述符不是套接字。 | |
套接字尚未绑定到具有 LPWSPBind 的地址,或者在 **LPWSPBind** 中指定了ADDR_ANY,但尚未发生连接。 |
注解
LPWSPGetSockName 检索名称中指定套接字描述符的当前 名称。 它在 由 s 参数指定的绑定和/或连接的套接字上使用。 返回本地关联。 在没有先执行 LPWSPBind 的情况下进行 LPWSPConnect 调用时,此调用特别有用;因为此调用提供唯一的方法来确定服务提供程序设置的本地关联。
如果套接字绑定到未指定的地址 (例如,ADDR_ANY) ,指示指定地址系列中的任何主机地址都应用于套接字, LPWSPGetSockName不 一定返回有关主机地址的信息,除非套接字已与 LPWSPConnect 或 LPWSPAccept 连接。 除非已连接套接字,否则 Windows 套接字 SPI 客户端不得假定将指定地址。 这是因为对于多宿主主机,在套接字连接之前,将用于套接字的地址是未知的。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | ws2spi.h |