简单的并发服务器

这篇博客介绍了在UNIX环境下如何编写一个简单的并发服务器,通过fork子进程来服务每个客户端。当连接建立时,服务器调用fork,父进程关闭已连接套接字,而子进程关闭监听套接字。文章重点解析了为何父进程关闭connfd不会影响子进程与客户端的连接,解释了文件和套接字的引用计数原理,以及在fork后如何管理套接字的生命周期。
摘要由CSDN通过智能技术生成

                                     简单的并发服务器

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)没有终止子进程与客户的连接呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值