本文实现一个多进程并发服务器
实现思路:
利用fork()函数实现每有一个client连接时就会创建一个子进程进程与client通信,父进程负责回收子进程的PCB
直接上代码!
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <signal.h>
#include <sys/wait.h>
#include <ctype.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#define SERVER_PORT 8888
#define MAXLINE 8192
//进程回收函数
void do_sigchlid(int num)
{
pid_t pid;
while((pid = waitpid(-1, NULL, WNOHANG)) > 0);//回收任何子进程
{
printf("child died, pid = %d\n", pid);
}
}
int main()
{
<