4 linux伺服器網路程式設計模型小結(學習筆記)

2021-07-02 19:37:37 字數 763 閱讀 8370

內容主要引用:

主要是五種模型

一:純粹的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伺服...