原创 讀者與寫者、生產者與消費者

1、讀者寫者寫者:寫數據讀者:僅僅是讀數據,不存在取走數據寫者與寫者關係:互斥讀者與讀者關係:沒有關係寫者與讀者關係:同步、互斥解決方法:1)讀者優先:讀者正在讀,寫者不能終止讀者,直到讀者讀完,寫者才能寫入2)寫者優先:寫者正在寫,讀者不

原创 多消費者與多生產者

1、消費者與生產者生產者與生產者:互斥關係消費者與消費者:互斥關係生產者與消費者:互斥、同步關係2、如何實現多消費者與多生產者代碼實現:測試代碼:兩個消費者,兩個生產者運行結果:

原创 三次握手與四次揮手

1、TCP報頭格式SYN(synchronous建立聯機)ACK(acknowledgement 確認)PSH(push傳送)FIN(finish結束)RST(reset重置)URG(urgent緊急)2、三次握手所謂的三次握手就是建立連接

原创 排序算法----插入排序

1、如何進行插入排序2、程序實現void InsertSort(int* a,size_t size) { assert(a); //注意是size-1 for(int i = 0;i < size-1;i++)//7 3 6 2 8

原创 crontab

1、創建crontab服務並編輯crontab -e內容:執行腳本的時間+所執行的腳本命令+腳本所存放的路徑2、檢查腳本是否創建成功crontab -l3、啓動服務/sbin/service crond start 4、查看是否運行ps -

原创 grep

1、grepgrep是g一種查找過濾工具,grep支持正則表達式2、正則表達式規定一些特殊語法表示字符類、數量限定符和位置關係,然後用這些特殊語法和普通字符一起表示 一個模式,這就是正則表達式。形式:' 表達式內容 '1)字符類. 匹配任意

原创 代理服務器

1、代理服務器代理服務器是一種重要的服務器安全功能,它的工作主要在開放系統互聯(OSI)模型的會話層,從而起到防火牆的作用。代理服務器大多被用來連接INTERNET(國際互聯網)和Local Area Network(局域網)。代理也稱網絡

原创 tcpdump

1、tcpdumpTcpDump是Linux中強大的網絡數據採集分析工具之一。用簡單的話來定義tcpdump根據使用者的定義對網絡上的數據包進行截獲的包分析工具。2、tcpdump的總的輸出格式爲:系統時間 來源主機 端口 > 目標主機.端

原创 TCP服務器

1、用到的函數socket函數:打開一個網絡通訊端口,如果成功的話,就像open()一樣返回一個文件描述符,應用程序可以像讀寫文件一樣用read/write在網絡上收發數據,如果socket()調用出錯則返回-1。服務器程序所監聽的網絡地址

原创 快速排序

1、快速排序通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。2、排序的過程3、代碼實現三

原创 排序算法---希爾排序

1、如何進行希爾排序希爾排序是直接插入排序的優化,具體實現是先進行以gap間隔分別進行排序,將數組排成快要接近有序,最後一次gap爲1的排序,實際上是直接插入排序,因爲直接插入排序在接近有序時時間複雜度最小,所以以此進行優化,gap大於1的

原创 5種I/O模型

1、一次輸入輸出的步驟:1)等待數據就緒2)數據搬遷2、5種I/O模型1)阻塞I/O模型:應用程序調用一個I/O函數,導致應用程序阻塞,等待數據準備好。如果數據沒有準備好,一直等待。數據準備好了,從內核拷貝到用戶空間,I/O函數返回成功指示

原创 三次握手與四次揮手

1、TCP報頭格式SYN(synchronous建立聯機)ACK(acknowledgement 確認)PSH(push傳送)FIN(finish結束)RST(reset重置)URG(urgent緊急)2、三次握手所謂的三次握手就是建立連接

原创 shell腳本---語法篇

1、條件測試1)test2)[測試命令:[ -d DIR ] : 如果DIR存在並且是一個目錄則爲真[ -f FILE ] : 如果FILE存在且是一個普通文件則爲真[ -z STRING ] : 如果STRING的長度爲零則爲真[ -n

原创 淺析GET與POST

1、GET、POST兩者是HTTP請求報文的方法,除此之外還有OPTION、HEAD、PUT、DELETE、TRACE、CONNECT。GET:請求讀取由URL(統一資源定位符)所標誌的信息POST:給服務器添加信息1)根據HTTP規範,G