• 1.摘要
  • 2.基本信息
  • 3.基本内容

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错误包。