併發伺服器實現模型和方法主要有三種:
(1)多程序伺服器端:通過建立多個程序提供服務
(2)多路復用伺服器:通過**並統一管理io物件提供服務
(3)多執行緒伺服器:通過生成與客戶端等量的執行緒提供服務
用sigaction訊號處理技術消滅殭屍程序。(這裡不詳述)
多程序伺服器端實現echo伺服器。
每當客戶端請求服務時,回聲伺服器就建立子程序以提供服務。步驟如下:
(1)回聲伺服器端(父程序)通過呼叫accept函式處理連線請求
(2)此時獲取的套接字檔案描述符建立並傳遞給子程序
(3)子程序利用傳遞來的檔案描述符提供服務
#include #include #include #include #include #include #include #include #define buf_size 30
void read_childproc(int sig);
int main(int argc,char *argv)
if(pid==0)
else
}close(serv_sock);
return 0;
}void read_childproc(int sig)
多程序客戶端
#include #include #include #include #include #include #define buf_size 1024
int main(int argc,char *argv)
memset(&serv_adr,0,sizeof(serv_adr));
serv_adr.sin_family=af_inet;
serv_adr.sin_addr.s_addr=inet_addr(argv[1]);
serv_adr.sin_port=htons(atoi(argv[2]));
if(connect(sock,(struct sockaddr*)&serv_adr,sizeof(serv_adr))==-1)
printf("connect error");
else printf("connect");
while(1)
close(sock);
return 0;
}
linux網路程式設計多程序併發伺服器
伺服器端 include include include include include include include include define port 1234 define maxsize 1024 static int clientprocess int connfd,struct s...
UNIX網路程式設計 併發伺服器(多程序)
以下程式的源 均是unix網路程式設計上的例子程式。intro daytimetcpsrv1.c include unp.h include include apueerror.h int main int argc,char argv tcp一般採用併發伺服器。當服務乙個客戶請求可能花費較長時間時...
linux 網路程式設計 多程序TCP伺服器
include include include include include include include include include include include in.h include arpa inet.h include ctype.h int main int argc,cha...