shutdown()
shutdown()是指禁止在一个套接口上进行数据的接收与发送。
基本信息
- 外文名
shutdown
- 系统
linux/Windows
- 支持协议
UDP/TCP
- API类型
网络套接口
基本内容
简述:
禁止在一个 套接口上进行数据的接收与发送。
Linux:
#includesocket.h>
int shutdown(int sockfd,int how);
linux下成功则返回0,错误返回-1,错误码errno:EBADF表示sockfd不是一个有效描述符;ENOTCONN表示sockfd未连接;ENOTSOCK表示sockfd是一个描述符而不是socket描述符。
Windows:
#include <winsock.h>或#include <winsock2.h>
int PASCAL FAR shutdown( SOCKET s, int how);
s:用于标识一个 套接口的描述字。
how:标志,用于描述禁止哪些操作。
how的方式有三种分别是
SHUT_RD(0):关闭sockfd上的读功能,此选项将不允许sockfd进行读操作。
SHUT_WR(1):关闭sockfd的写功能,此选项将不允许sockfd进行写操作。
SHUT_RDWR(2):关闭sockfd的读写功能。
注释:
shutdown()函数用于任何类型的 套接口禁止接收、禁止发送或禁止收发。
如果how参数为0,则该 套接口上的后续接收操作将被禁止。这对于低层协议无影响。对于TCP协议,TCP窗口不改变并接收前来的数据(但不确认)直至窗口满。对于UDP协议,接收并排队前来的数据。任何情况下都不会产生ICMP错误包。