1、前言
網(wǎng)絡編程分為客戶端和服務端,服務器通常分為迭代服務器和并發(fā)服務器。并發(fā)服務器可以根據(jù)多進程或多線程進行細分,給每個連接創(chuàng)建一個獨立的進程或線程,或者預先分配好多個進程或線程等待連接的請求。今天探討三種設計范式
(1)迭代服務器
(2)并發(fā)服務器,為每個客戶請求創(chuàng)建一個進程或線程
(3)預先分配子進程或線程,每個子進程或線程調(diào)用accept
3、測試用例:
客戶端代碼:
1 #include <sys/wait.h> 2 #include <string.h> 3 #include <errno.h> 4 #include <netdb.h> 5 #include <stdlib.h> 6 7 #define IP "127.0.0.1" 8 #define PORT 8888 9 #define WORKER 410 #define MAXIN 409611 #define MAXLINE 409612 13 int tcp_connect(const char *host, const char *port)14 {15 if (host == NULL || port == NULL) {16 return -1;17 }18 int sockfd, n;19 struct