併發伺服器端的實現方法
併發伺服器可同時向發起請求的客戶端提供服務,以提高平均滿意度和有效利用cpu
。實現模型和方法:
多程序伺服器 ,多路復用伺服器 ,多執行緒伺服器。
理解程序
程序:占用記憶體空間的的正在執行的程式。
如果父程序終止,處於殭屍狀態的子程序將同時銷毀。
父程序往往與子程序一樣繁忙,因此不能只呼叫waitpid
函式以等待子程序終止。
可利用訊號處理技術消滅殭屍程序,子程序終止時將產生sigchld
訊號。基於程序的併發伺服器模型
一:伺服器端(父程序)通過呼叫accept
函式受理連線請求
二:此時獲取的套接字檔案描述符建立並傳遞給子程序。
三:子程序利用傳遞來的檔案描述符提供服務
分割tcp
的i/o
程式客戶端的父程序負責接收資料,額外建立的子程序負責傳送資料。
這樣,無論客戶端是否從伺服器端接收完整資料都可以進行傳輸。
多程序伺服器端
多程序服務端 利用訊號 子程序例子 利用子程序結束後向父程序傳送sigchld訊號來 子程序 include 子程序結束訊號 void read childproc int signo int main int argc,char ar else else 主程序 return0 通過多個程序來實現...
多程序伺服器
基於tcp實現多程序伺服器 伺服器端 1 建立套接字 include include int socket int domain,int type,int protocol domain 乙個位址描述。目前僅支援af inet格式,也就是說arpa internet位址格式。type 指定socke...
多程序伺服器
注意 包含了 wrap.c 和 wrap.h 檔案在上篇部落格中 server.c include include include in.h include include include include include include wrap.h define maxline 8192 defi...