多进程并发服务器:
1, socket() 创建监听套接字 lfd
2, Bind() 绑定地址结构
3, listen()
4, while(1)
{
cfd = accept() 接收客户端连接请求
pid = fork()
if(pid == 0)
{
close(lfd) 关闭用于建立连接的套接字
read(cfd)
write(cfd)
}
else if(pid > 0)
{
close(cfd); //关闭用于客户端的套接字 cfd
contiue;
}
}
5, 子进程:
close(lfd) 关闭用于建立连接的套接字
read()
write()
父进程:
close(cfd);
注册信号捕捉函数 SIGCHLD
在回调函数中,完成子进程回收
while(waipid());
多线程并发服务器