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