1、前言
网络编程分为客户端和服务端,服务器通常分为迭代服务器和并发服务器。并发服务器可以根据多进程或多线程进行细分,给每个连接创建一个独立的进程或线程,或者预先分配好多个进程或线程等待连接的请求。今天探讨三种设计范式
(1)迭代服务器
(2)并发服务器,为每个客户请求创建一个进程或线程
(3)预先分配子进程或线程,每个子进程或线程调用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