首頁  >  文章  >  運維  >  linux sock檔是什麼意思

linux sock檔是什麼意思

藏色散人
藏色散人原創
2023-04-12 10:48:102087瀏覽

linux sock檔案是指透過shell程式設計後形成的套介面檔案;socket是應用層與TCP/IP協定族通訊的中間軟體抽象層,它是一組介面;在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協定族隱藏在Socket介面後面。

linux sock檔是什麼意思

本教學操作環境:linux5.9.8系統、Dell G3電腦。

linux sock檔案是什麼意思?

linux中sock,它一般是指經由shell程式設計後形成的套介面文件,經過ls -l 後,第一個顯示的文件類型為:s 。

Socket是什麼?

1、 socket套接字:

socket起源於Unix,而Unix/Linux基本哲學之一就是“一切皆文件”,都可以用“打開open –> ; 讀寫write/read –> 關閉close」模式來操作。 Socket就是該模式的一個實現, socket即是一種特殊的文件,一些socket函數就是對其進行的操作(讀/寫IO、打開、關閉).

說白了Socket是應用層與TCP/IP協定族通訊的中間軟體抽象層,它是一組介面。在設計模式中,Socket其實就是一個門面模式,它把複雜的TCP/IP協定族隱藏在Socket介面後面,對使用者來說,一組簡單的介面就是全部,讓Socket去組織數據,以符合指定的協定.

注意:其實socket也沒有層的概念,它只是一個facade設計模式的應用,讓程式變的更簡單。是一個軟體抽象層。在網路程式設計中,我們大量使用的都是透過socket實現的。

2、套接字描述子

其實就是一個整數,我們最熟悉的句柄是0、1、2三個,0是標準輸入,1是標準輸出,2是標準錯誤輸出。 0、1、2是整數表示的,對應的FILE *結構的表示就是stdin、stdout、stderr

套接字API原本是作為UNIX作業系統的一部分而開發的,所以套接字API與系統的其他I/O設備整合在一起。特別是,當應用程式要為因特網通訊而建立一個套接字(socket)時,作業系統就會傳回一個小整數作為描述符(descriptor)來識別這個套接字。然後,應用程式以該描述符作為傳遞參數,透過呼叫函數來完成某種操作(例如透過網路傳送資料或接收輸入的資料)。

在許多作業系統中,套接字描述符和其他I/O描述符是整合在一起的,所以應用程式可以對檔案進行套接字I/O或I/O讀/寫操作。

當應用程式要建立一個套接字時,作業系統就會傳回一個小整數作為描述符,應用程式則使用這個描述符來引用該套接字需要I/O請求的應用程式請求作業系統開啟一個檔案。作業系統就建立一個檔案描述符提供給應用程式存取檔案。從應用程式的角度來看,檔案描述符是一個整數,應用程式可以用它來讀寫檔案。下圖顯示,作業系統如何把檔案描述符實作為一個指標數組,這些指標指向內部資料結構。

linux sock檔是什麼意思

對於每個程式系統都有一張單獨的表。精確地講,系統為每個運行的進程維護一張單獨的檔案描述符表。當進程開啟一個檔案時,系統會將一個指向此檔案內部資料結構的指標寫入檔案描述符表,並將該表的索引值傳回給呼叫者 。應用程式只需記住這個描述符,並在以後操作該檔案時使用它。作業系統把該描述符作為索引存取進程描述符表,透過指標找到保存該檔案所有的資訊的資料結構。

針對套接字的系統資料結構:

1)、套接字API裡有個函數socket,它就是用來建立一個套接字。套接字設計的總體想法是,單一系統呼叫就可以創建任何套接字,因為套接字是相當籠統的。一旦套接字創建後,應用程式還需要呼叫其他函數來指定具體細節。例如呼叫socket將創建一個新的描述符條目:

linux sock檔是什麼意思

2)、雖然套接字的內部資料結構包含很多字段,但是系統創建套接字後,大多數字字段沒有填寫。應用程式建立套接字後在該套接字可以使用之前,必須呼叫其他的過程來填入這些欄位。

推薦學習:《linux影片教學

以上是linux sock檔是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn