Linux socket shutdown()和close()

  • int close(int sockfd)

#include<unistd.h>
将套接字标记为关闭,尝试发送已经排队的数据,将套接字描述符减一,如果描述符为0则发送FIN触发套接字关闭

  • int shutdown(int sockfd,int how)

#include <sys/socket.h>
SHUT_RD代表关闭发送通道,还会尝试发送已经排队的数据,然后发送FIN
SHUT_WR代表关闭接收通道,如果接收到回复RST
SHUT_RDWR代表同时关闭发送结束通道
shutdown只会发送FIN不会释放套接字

原文地址:https://www.cnblogs.com/jhc888007/p/7041700.html