原创 linux-socket編程(四) tcp

1:tcp的11種狀態:                                                    上面的狀態有10種,第11種是CLOSING,這個的產生條件是當服務器和客戶端同時發送關閉請求,這時候不會產生

原创 linux-socket編程(五)五種IO模型

1. 五種I/O模型 阻塞I/O         當套接口完成連接,可以使用recv函數向系統提出receive請求,來接收數據,這個請求是阻塞的,直到對等方發送數據過來。 非阻塞I/O 使用fcntl函數來將套接字改爲非阻塞模式。fc

原创 linux-socket編程使用到的函數總結

1:wait 函數功能:父進程一旦調用wait函數,就會立即阻塞自己,由wait分析是否當前進程的某個子進程已經退出,如果讓它找到了這樣一個已經變成殭屍的子進程,wait就會收集這個子進程的信息,並把它徹底銷燬返回,如果沒有找到,就一直阻

原创 摘自抖音的優美句子

燈把黑夜燙了一個洞。 生命,不過只是一場騙局,從你開始呼吸的那一刻起,你就已經在慢慢死亡了。 真正的大師永遠都懷着一顆學徒的心。 我傷心的時候,你會不會認爲我也是在搞笑。 我愛你,不是怪你不在我身邊,而是今天比平時更想你。 遠方除了遙遠一

原创 進程,線程,並行,併發有關知識學習

1:淺談並行和併發 並行:指的是可以同時執行不同的任務。例如上廁所的時候看手機,這裏兩件事情可以同時執行。 併發:指的是交替執行不同的任務。其實併發有點類似於多線程的原理,多線程並非是同時執行多個任務,如果你開兩個線程執行,就是在很快的速

原创 linux-socket編程(四)

1:流協議與粘包 TCP:基於字節流的傳輸服務,無邊界(包與包之間沒有邊界),所以容易產生粘包,但是不會丟包。 粘包的含義:由於TCP在傳輸數據的時候是無邊界的,所以數據對tcp來說就是一堆沒有結構區別字節塊,因此就會導致如下圖所示的情況

原创 linux-socket編程(三)

1:socket選項REUSEADDR的用法,地址重複利用 當你使用上一篇(linux-socket編程(二))的程序實現的時候,結果如下: 如果關閉服務器端。再打開的話會出現錯誤 產生的原因是: 可以使用REUSEADDR來解決

原创 linux-man命令

       在學習socket編程的時候,要經常使用一些函數,這時候需要查看手冊來,查看該函數的基本用法,以及參數的含義,和如果參數是一些宏的話,有哪些選項,具體的功能有哪些。這時候就需要使用man這個命令來查看。 man命令是linu

原创 linux-socket編程(二)

1:TCP客戶/服務器模型(c/s)      這個就是建立連接的過程。圖片摘自https://www.bilibili.com/video/BV1eb411F74G?p=7 2:回射客戶/服務器模型 3:socket, bind, l

原创 linux-shell(16)-sed命令

sed是一種幾乎在所有UNIX平臺,的輕量級流編輯器。sed主要是用來將數據進行選取,替換,刪除,新增的命令。 sed [選項] '[動作]' 文件 選項:-n: 一般sed命令會把所有數據都輸出到屏幕,如果加入此選項,則只會把經過sed

原创 linux-shell(15)字符截取命令

1:cut命令: 用來顯示行中指定部分,刪除文件中指定字段。用來顯示文件的內容。 cut [選項] 文件名 選項: 例子:test2.txt 2:printf命令 printf命令格式化輸出結果到標準輸出 printf [選項] [

原创 linux-shell(14) 基礎正則表達式

1:正則表達式與通配符 正則表達式用來在文件中匹配符合條件的字符串,正則是包含匹配。grep, awk, sed等命令可以支持正則表達式。 通配符用來匹配符合條件的文件名,通配符是完全匹配。ls, find, cp這些命令不支持正則表達式

原创 linux-查看終端的命令以及ssh命令

可以使用who命令和w命令 w功能最全,能顯示用戶登錄名,終端標誌,星期幾登錄和具體登錄時間,閒置時間。用戶正在指向的程序,佔用CPU時間,系統的運行時間和平均負載: who僅顯示用戶登錄名,終端標誌,和登錄日期和時間,pst/x是因爲

原创 linux-shell(13)-環境變量配置文件

環境變量配置文件中主要是定義對系統的操作環境生效的系統默認環境變量,比如PATH,HISTSIZE(歷史變量保存條數),PSI,HOSTNAME(主機名)等默認環境變量。可以使用set或者env開查看變量 1:直接讓配置文件生效,不需要

原创 linux-shell(11)-Bash數值運算與運算符

計算兩個數相加 1、declare聲明變量類型 declare [+/-] [選項] 變量名 選項:            -:  給變量設定類型屬性           +:  取消變量的類型屬性           -i :   將變