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); //表示讀寫都要關閉