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 中提供特定的错误代码。

错误代码 含义
WSAENETDOWN
网络子系统失败。
WSAEFAULT
namenamelen 参数不是用户地址空间的有效部分,或者 namelen 参数太小。
WSAEINPROGRESS
当回调正在进行时,将调用函数。
WSAENOTSOCK
:描述符不是套接字。
WSAEINVAL
套接字尚未绑定到具有 LPWSPBind 的地址,或者在 **LPWSPBind** 中指定了ADDR_ANY,但尚未发生连接。

注解

LPWSPGetSockName 检索名称中指定套接字描述符的当前 名称。 它在 由 s 参数指定的绑定和/或连接的套接字上使用。 返回本地关联。 在没有先执行 LPWSPBind 的情况下进行 LPWSPConnect 调用时,此调用特别有用;因为此调用提供唯一的方法来确定服务提供程序设置的本地关联。

如果套接字绑定到未指定的地址 (例如,ADDR_ANY) ,指示指定地址系列中的任何主机地址都应用于套接字, LPWSPGetSockName 一定返回有关主机地址的信息,除非套接字已与 LPWSPConnectLPWSPAccept 连接。 除非已连接套接字,否则 Windows 套接字 SPI 客户端不得假定将指定地址。 这是因为对于多宿主主机,在套接字连接之前,将用于套接字的地址是未知的。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 ws2spi.h

另请参阅

LPWSPBind

LPWSPGetPeerName

LPWSPSocket