请输入您要查询的百科知识:

 

词条 shutdown()
释义

简述:

禁止在一个套接口上进行数据的接收与发送。

#include <winsock.h>或#include <winsock2.h>

int PASCAL FAR shutdown( SOCKET s, int how);

s:用于标识一个套接口的描述字。

how:标志,用于描述禁止哪些操作。

注释:

shutdown()函数用于任何类型的套接口禁止接收、禁止发送或禁止收发。

如果how参数为0,则该套接口上的后续接收操作将被禁止。这对于低层协议无影响。对于TCP协议,TCP窗口不改变并接收前来的数据(但不确认)直至窗口满。对于UDP协议,接收并排队前来的数据。任何情况下都不会产生ICMP错误包。

若how为1,则禁止后续发送操作。对于TCP,将发送FIN。

若how为2,则同时禁止收和发。

请注意shutdown()函数并不关闭套接口,且套接口所占有的资源将被一直保持到closesocket()调用。

评注:

无论SO_LINGER设置与否,shutdown()函数不会阻塞。

一个应用程序不应依赖于重用一个已被shutdown()禁止的套接口。特别地,一个WINDOWS套接口实现不必支持在这样的套接口上使用connect()调用。

返回值:

如果没有错误发生,shutdown()返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。

错误代码:

WSANOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()。

WSAENETDOWN:WINDOWS套接口实现检测到网络子系统失效。

WSAEINVAL:how参数非法。

WSAEINPROGRESS:一个阻塞的WINDOWS套接口调用正在运行中。

WSAENOTCONN:套接口未连接(仅适用于SOCK_STREAM类型套接口)。

WSAENOTSOCK:描述字不是一个套接口。

参见:

connect(), socket(),bind()

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/1 17:40:51