Linux网络编程基础:close函数与shutdown函数

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); //表示读写都要关闭
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章