close函数
1)头文件
#include <unistd.h>
2)函数声明形式
int close(int fd);
3)用于断开tcp连接
4)参数fd
对于服务器:指的是accept函数返回的用于通信的通信描述符
对于客户端:指的是socket函数返回的套接字文件描述符
示例:
close(cfd);
close函数的缺点
1)会一次性把读写都关掉,不能只关写而读开着,也不能只关读而写开着
2)当多个文件描述符指向一个连接时,若只关一个文件描述符,则不会断开连接,除非关闭所有文件描述符
shutdown函数
1)头文件
#include <sys/socket.h>
2)函数声明形式
int shutdown(int sockfd,int how);
3)可以按照要求断开连接,且不管连接由多少个描述符指向,只关其中任意一个都可断开连接
4)成功:返回0、失败:返回-1
函数参数
sockfd参数
与close函数参数相同
how参数
SHUT_RD:只断开读连接
SHUT_WR:只断开写连接
SHUT_RDWR:读、写连接都断开
示例:
shutdown(cfd,SHUT_RDWR); //表示读写都要关闭