Unix系統程式設計 4 多程序併發伺服器

2021-07-14 23:01:31 字數 1521 閱讀 3623

伺服器按照處理方式來看可以分為:

迭代伺服器只能一次處理乙個客戶的請求。也就是說在伺服器響應乙個客戶請求時,如果有另乙個客戶發起請求是不能得到及時響應的。下圖是乙個典型的迭代伺服器處理流程。

併發伺服器則能同時處理多個客戶端請求。下圖是乙個基於多程序模型的併發伺服器處理流程。

原始碼可以到: github連線

伺服器端原始碼:

#include 

#include /* see notes */

#include

#include

#include

#include

#define serv_port 8000

#define maxline 1024

int main()

printf("client: %s\t port: %d\n",

inet_ntop(af_inet, &clientaddr.sin_addr, str, sizeof(str)),

ntohs(clientaddr.sin_port));

i = 0;

while(i < revlen)

write(confd, buf, revlen);

}close(confd);

return

0; }

else

if(pid > 0)

else

}close(fd);

return

0;}

測試用客戶端原始碼:

#include 

#include

#include

#include

#include

#include

#define maxline 80

#define serv_port 8000

int main(int argc, char *argv)

//5. 關閉套接字描述符

close(sockfd);

return

0;}

linux系統程式設計 多程序

最近發現每天都在寫業務 好多基礎的東西都忘了,今天開始每天覆習一點基礎知識。今天先複習多程序 程序是具有一定功能的程式的一次執行活動,是系統資源分配和排程的基本單位 孤兒程序 父程序退出,子程序沒有退出,被init程序收養 init程序 是核心啟動後執行的第乙個程序,是所有孤兒程序的子程序。init...

unix系統程式設計

popen pclose popen介面定義 include file popen const char command,const char type int pclose file stream popen函式會建立乙個管道,並且建立乙個子程序來執行shell,shell會建立乙個子程序來執行c...

UNIX網路程式設計 併發伺服器(多程序)

以下程式的源 均是unix網路程式設計上的例子程式。intro daytimetcpsrv1.c include unp.h include include apueerror.h int main int argc,char argv tcp一般採用併發伺服器。當服務乙個客戶請求可能花費較長時間時...