1、前言

  網(wǎng)絡編程分為客戶端和服務端,服務器通常分為迭代服務器和并發(fā)服務器。并發(fā)服務器可以根據(jù)多進程或多線程進行細分,給每個連接創(chuàng)建一個獨立的進程或線程,或者預先分配好多個進程或線程等待連接的請求。今天探討三種設計范式

(1)迭代服務器

iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

 

(2)并發(fā)服務器,為每個客戶請求創(chuàng)建一個進程或線程

iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

 

(3)預先分配子進程或線程,每個子進程或線程調(diào)用accept

iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

3、測試用例:

客戶端代碼:

iOS培訓,Swift培訓,蘋果開發(fā)培訓,移動開發(fā)培訓

 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