词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。