多程序併發伺服器思路建立

2021-10-10 10:14:12 字數 1351 閱讀 6409

1.socket 函式建立套接字 lfd

2.bind 繫結位址結構

3.listen 設定監聽上限

4.迴圈監聽客戶端連線請求

5.子程序關閉lfd(用於監聽客戶端連線檔案描述符)

完成指定任務

6.父程序關閉cfd(關閉與客戶端進行資料通訊的檔案描述符)

註冊訊號捕捉函式,**子程序

使用多程序併發伺服器時要考慮以下幾點:

1.父程序最大檔案描述個數(父程序中需要close關閉accept返回的新檔案描述符)

2.系統內建立程序個數(與記憶體大小相關)

3.程序建立過多是否降低整體服務效能(程序排程)

注:如果不進行訊號捕捉 子程序**,就會產生殭屍程序

**實現(實現客戶端小寫轉大寫功能)

1.#include 

2.#include

3.#include

4.#include

5.#include

6.#include

7.#include

8.#include

9.#include

10.#include

11.#include

12.#include

13.14.#include "wrap.h"

15.16.#define srv_port 9999

17.void

catch_child

(int signum)

19.18.

intmain

(int argc,

char

*ar**)

19.else

if(pid ==0)

else

69.close

(cfd)

;70.

continue

;71.

}72.

}73.

57.58.

if(pid ==0)

65.66.

for(i =

0; i < ret; i++

)67. buf[i]

=toupper

(buf[i]);

68.69.

write

(cfd, buf, ret)

;//寫回給用於與客戶端通訊的檔案描述符

70.write

(stdout_fileno, buf, ret)

;//寫至螢幕

71.}

72.} x

73.74.

return0;

75.}

併發伺服器 多程序實現

通過簡單的socket可以實現一對一的c s通訊,當多個客戶端同時進行伺服器訪問,那麼伺服器只能按序的一一進行處理,除了第乙個客戶端,其餘客戶端都會陷入等待。並且這樣的程式只能實現半雙工通訊 資料能雙向傳輸,但同一時刻只能單向傳遞,通過切換傳輸方向實現雙工 而且實現方式繁瑣,功能拘束,實用價值很低。...

linux多程序併發伺服器

多程序併發伺服器,多執行緒版 include include include include include include include include include include include 程序 函式 void recyle int num int main int argc,cha...

Web伺服器 併發伺服器 多程序(3 4 1)

目錄 在單程序的時候,相當於 是來乙個客戶,派乙個人去服務一下 效率低,現在使用多程序來服務 假設場景 100個人同時訪問頁面 單程序 一次處理,後面的會等待時間長 多程序 併發處理,一起處理 當然程序不能越多越好,硬體不支援 執行緒的開銷比程序少,但最好使用協程 注意 用process來建立子程序...