在linux中,s類型文件是指“套接字文件(socket)”,它是一種特殊的文件,用于進程之間的通信;可以通過這個文件來初始化一種網絡協議,然后就可以通過一系列的函數來對這個網絡協議進行初始化、傳輸等等操作。
本教程操作環境:linux5.9.8系統、Dell G3電腦。
Linux文件類型(b、c、d、l、s、-)
文件類型 | 說明 |
---|---|
b | 塊設備,是一些提供系統存取數據的接口設備,例如硬盤。 |
c | 字符設備,是一些串行端口的接口設備,例如鍵盤、鼠標、打印機、tty終端。 |
d | 目錄,類似于Windows的文件夾。 |
l |
鏈接文件,類似于Windows的快捷方式。 |
s | 套接字文件(socket),用于進程之間的通信。 |
– | 文件,分純文本文件(ASCII)和二進制文件(binary)。 |
socket套接字作為一種特殊的文件,可以通過這個socket來初始化一種網絡協議,然后就可以通過一系列的函數(write/read/accept)來對這個網絡協議進行初始化、傳輸等等操作
socket定義
Socket是應用層與TCP/IP協議族通信的中間軟件抽象層,它是一組接口。在設計模式中,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議
socket在Linux內核中的結構
socket在內核中其實就是一個結構體。這個結構體包含有ip、port、state、size等成員,這些成員都是用來初始化套接字的詳細信息的,但是我們無法直接使用這些成員。因此Linux提供了相應的接口函數給我調用,我們通過這些函數來初始化socket結構體內的成員
結構體中
-
ip、port:初始化IP地址和端口號
-
state:當前網絡服務的狀態(監聽/非監聽)
-
size:最大可連接的數量
因為這些結構體成員我們不可能直接操作,所以Linux提供了相應的接口函數給我們調用,來操作這些成員
-
bind():綁定ip與端口號
-
listen():監聽
-
….等等還有很多其他函數
相關推薦:《Linux視頻教程》