內容主要引用:
主要是五種模型
一:純粹的socket呼叫,單程序,單執行緒
缺陷:二:多執行緒
在accept到乙個新的鏈結時,新開啟乙個執行緒用於處理資料。
缺點:1:無法應對大量客戶端的開銷。
2:某乙個執行緒出問題時整個程序掛死。
三:多程序
在accept到乙個新的鏈結時,新開啟乙個程序用於處理資料。
缺點:1:無法應對大量客戶端
2:程序反覆建立銷毀引起的空間時間開銷。
四:多路io就緒通知 select模型
缺陷:1:輪詢式
2:根據linux標頭檔案定義最多支援1024個fd
3:核心 / 使用者空間記憶體拷貝問題,select需要複製大量的控制代碼資料結構,產生巨大的開銷;
另外還有pool模型
五:多路io就緒通知 epool模型
對應上述:
1:epool是返回有修改的fd而不是需要應用去遍歷
2:epool是動態記憶體介面,樹形介面,不存在個數限制(除了記憶體滿)
3:使用mmap 共享記憶體。
epool模型相比select和pool的優勢在於,一,突破了1024的限制
六:非同步io 目前沒有發布版本?
水平觸發也稱條件觸發,只要條件滿足就觸發
邊沿觸發也稱狀態觸發,只有狀態改變才觸發。
apache nginx lighttpd 都是web伺服器
例如lighttpd可以配置是基於epool的還是pool模型的。
4 linux搭建ftp伺服器
1 檢查安裝vsftpd軟體 使用如下 rpm qa grep vsftpd可以檢測出是否安裝了vsftpd軟體,如果沒有安裝,使用yum進行安裝 yum install vsftpd y2 啟動服務 使用vsftpd軟體,主要包括如下幾個命令 啟動ftp命令 service vsftpd star...
Linux網路程式設計 伺服器模型
學習過 軟體工程 吧.軟體工程可是每乙個程式 員 必修 的課程啊.如果你沒有學習過,建議你去看一看.在這一章裡面,我們一起來從軟體工程的角度學習網路程式設計的思想.在我們寫程式之前,我們都 應該從軟體工程的角度規劃好我們的軟體,這樣我們開發軟體的效率才會高.在網路程式裡面,一般的來說都是許多客戶機對...
Linux網路程式設計 伺服器模型
在網路程式裡面,一般的來說都是許多客戶機對應乙個伺服器.為了處理客戶機的請求,對服務端的程式就提出了特殊的要求.我們學習一下目前最常用的伺服器模型.迴圈伺服器 迴圈伺服器在同乙個時刻只可以響應乙個客戶端的請求 併發伺服器 併發伺服器在同乙個時刻可以響應多個客戶端的請求 9.1 迴圈伺服器 udp伺服...