LPWSPSHUTDOWN 回调函数 (ws2spi.h)

LPWSPShutdown 函数禁用套接字上的发送和/或接收。

语法

LPWSPSHUTDOWN Lpwspshutdown;

int Lpwspshutdown(
  [in]  SOCKET s,
  [in]  int how,
  [out] LPINT lpErrno
)
{...}

参数

[in] s

标识套接字的描述符。

[in] how

不再允许使用描述操作类型的标志。

[out] lpErrno

指向错误代码的指针。

返回值

如果未发生错误, LPWSPShutdown 将返回零。 否则,返回值 SOCKET_ERROR,并在 lpErrno 中提供特定的错误代码。

错误代码 含义
WSAENETDOWN
网络子系统失败。
WSAEINVAL
方法无效,或者与套接字类型不一致。 例如,SD_SEND与UNI_RECV套接字类型一起使用。
WSAEINPROGRESS
当回调正在进行时,将调用函数。
WSAENOTCONN
仅) 面向连接的套接字 (套接字未连接。
WSAENOTSOCK
:描述符不是套接字。

注解

LPWSPShutdown 函数用于所有类型的套接字,以禁用接收和/或传输。

如果 如何 SD_RECEIVE,则不允许在套接字上进行后续接收。 这不会影响较低的协议层。 对于 TCP 套接字,如果套接字上仍有数据排队等待接收,或者数据随后到达,则会重置连接,因为无法将数据传递给用户。 对于 UDP 套接字,接受传入数据报并排队。 在任何情况下都不会生成 ICMP 错误数据包。

如果 如何 SD_SEND,则不允许在套接字上进行后续发送。 对于 TCP 套接字,将发送 FIN。 设置 如何 SD_BOTH将禁用发送和接收,如上所述。

请注意, LPWSPShutdown 不会关闭套接字,在调用 LPWSPCloseSocket 之前,不会释放附加到套接字的资源。

注意

无论套接字上的SO_LINGER设置如何, LPWSPShutdown 函数都不会阻止。 Windows 套接字 SPI 客户端不应依赖于在关闭套接字后能够重复使用套接字。 具体而言,Windows 套接字服务提供程序不需要支持在此类套接字上使用 LPWSPConnect

要求

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

另请参阅

LPWSPConnect

LPWSPSocket