1、前言

  网络编程分为客户端和服务端,服务器通常分为迭代服务器和并发服务器。并发服务器可以根据多进程或多线程进行细分,给每个连接创建一个独立的进程或线程,或者预先分配好多个进程或线程等待连接的请求。今天探讨三种设计范式

(1)迭代服务器

iOS培训,Swift培训,苹果开发培训,移动开发培训

 

(2)并发服务器,为每个客户请求创建一个进程或线程

iOS培训,Swift培训,苹果开发培训,移动开发培训

 

(3)预先分配子进程或线程,每个子进程或线程调用accept

iOS培训,Swift培训,苹果开发培训,移动开发培训

3、测试用例:

客户端代码:

iOS培训,Swift培训,苹果开发培训,移动开发培训

 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