程序池的工作模式是先fork一定數量的子程序,當程序池中的空閒子程序數超過最大空閒子程序數時,就不fork子程序,因為這時的子程序數已經足夠處理客戶端的請求服務,只有當空閒子程序小於最大空閒子程序時,且程序池中子程序數小於最大子程序數時,才fork子程序。
主要的資料結構描述
程序池結構體,類似c++中的抽象類
typedef struct tagpoolsvrstru
poolsvrstru;
程序池狀態描述
typedef struct tagcpqstru
cpqstru;
程序本身描述
typedef struct tagcpistru
cpistru;
程序狀態:
typedef enum tagcpsenum
cpsenum;
程序池函式指標型別定義
typedef int (*poolstartfunc)(pvoid pargument);
typedef int (*poolworkfunc)(int nsockdescriptor,pvoid pargument);
typedef int (*poolendfunc)(pvoid pargument);
typedef int (*poolfinfunc)(pvoid pargument);
typedef int (*poolworkfunc11)(int psockdescriptor,pvoid pargument);
定義的常量
#define max_listen_port 100 /* 系統最多監聽埠數 */
#define min_child_num 6 /* 最小程序數目 */
#define max_child_num 256 /* 最大程序數目 */
#define min_child_idle 3 /* 最小空閒程序數目 */
#define max_child_idle 6 /* 最大空閒程序數目 */
#define intval_scan_time 5 /* 管理程序掃瞄間隔時間 */
#define intval_scan_time11 100 /* 管理程序掃瞄間隔時間 */
socket 程式設計例項 基於執行緒池實現服務端併發
1.socket程式設計 軟體測試並jmeter為的是實現客戶端併發,jmeter 的原理是使用執行緒池,而軟體開發的目的是為實現服務端的併發支援多使用者同時併發工作 2.基於多執行緒實現套接字服務端實現併發 客戶端 客戶端只要單使用者迴圈通訊 import socket client socket...
《網路程式設計》 第10章 多程序服務端
具有代表性的併發伺服器端實現模型 多程序伺服器 通過建立多個程序提供服務 多路復用伺服器 通過 並統一管理i o物件提供服務 多執行緒伺服器 通過生成與客戶端等量的執行緒提供服務。include pid t fork 功能 建立乙個程序。返回值 失敗,返回 1 成功,返回程序id 父程序 fork ...
openssl程式設計之服務端
openssl程式設計之服務端 繼續上篇部落格,我們有了openssl的客戶端程式,本篇博文將詳細介紹服務端的openssl程式設計 服務端使用的證書相關檔案 ca.crt,server.crt,server.key,關於證書和key的生成,請參考 程式如下 include openssl bio....