简单的并发服务器
UNIX下编写简单的并发服务器最简单的方法就是fork一个子进程来服务每个客户。
pid_t pid;
int listenfd, connfd;
listenfd = socket();
bind(listenfd, );
listen(listenfd, LISTENQ)
for(; ;)
{
connfd = accpet(listenfd, );
if((pid = fork()) == 0)
{
close(listenfd);
doit(connfd);
close(connfd);
exit(0);
}
close(connfd);
}
当一个连接建立时,accpet返回,服务器紧跟着调用fork,然后父进程关闭已连接套接字子进程关闭监听套接字。
为什么父进程调用close(connfd)没有终止子进程与客户的连接呢?