套接字描述符的理解

2021-07-15 10:16:20 字數 819 閱讀 4712

一、首先明確 啥是「套接字」——所謂套接字就是對通訊端點的抽象。

套接字描述符——就如程式通過檔案描述符訪問檔案一樣,套接字描述符是訪問套接字的一種路徑。

從某種意義上說,套接字也在檔案,所以許多對檔案描述符使用的函式,對套接字描述符同樣適用,但是有些是不可使用的。

int shutdown(int socketfd,int how)  

int socket(int domain,int type,int protocol) 

其作用就是:返回乙個套接字描述符

domain——套接字通訊域——的取值:af_inet,af_inet6,af_unix,af_unspec

type————套接字型別——--的取值:sock_dgram,sock_raw,sock_seqpacket,sock_stream

protocal——————————的取值:通常為0,表示按給定的域或套接字型別選擇預設協議。當對同一域和套接字型別支援多個協議時,可以使用protocol引數選擇乙個特定協議。

int shutdown(int sockfd,int how)

作用就是:關閉sockfd指向的套接字的how。其中how的取值可以為:shut_rd,shut_wr,shut_rdwr

注:shutdown 與close的區別

close是指:關閉乙個指向檔案的檔案描述符,其實只是關閉了這個檔案描述符對檔案表的指標。如果該檔案仍有其他檔案描 述符引用的話,該檔案的v節點表並沒有關閉。只有當關閉的檔案描述符是最後乙個指向檔案的檔案描述符,v節點才能也被關閉。

而shutdown是關閉對一檔案的讀寫等屬性,不問有多少個檔案描述符對該檔案引用。

Linux Socket套接字描述符詳解

套接字又名socket,是乙個介面,程序可以利用該介面和其他程序通訊。無論是其他程序在本機上還是在其他機器上。套接字介面有許多不同的網路協議。包括tcp ip協議棧!就如使用檔案描述符來訪問檔案一樣。程式是用套接字描述符來訪問套接字。include int socket int domain,int...

網路IPC 套接字之套接字描述符

套接字是通訊端點的抽象。與應用程式要使用檔案描述符訪問檔案一樣,訪問套接字也需要套接字描述符。套接字描述符在unix系統是用檔案描述符實現的。事實上,許多處理檔案描述符的函式 如read和write 都可以處理套接字描述符。要建立乙個套接字,可以呼叫socket函式。include int sock...

WINSOCK基礎知識(套接字描述符)

引子.大多數的作業系統裡,需要i o請求的應用程式請求作業系統開啟乙個檔案。系統就建立乙個檔案描述符提供給應用程式訪問檔案。從應用程式的角度看,檔案描述符是乙個整數,應用程式可以用它來讀寫檔案。下圖顯示,作業系統如何把檔案描述符實現為乙個指標陣列,這些指標指向內部資料結構。對於每個程式系統都有一張單...