码迷,mamicode.com
首页 > 系统相关 > 详细

Linux网络编程——进程池实现过程详解(1)

时间:2019-05-13 22:56:50      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:编程   pair   log   pch   定义数据   bind   red   创建   cep   

进程池

父进程的实现流程

1、定义数据结构pChild,申请子进程数目的结构体空间
2、通过循环,socketpair创建全双工管道,创建子进程,将子进程pid,管道对端,是否忙碌等信息存储
3、socket,bind,listen,对应的端口处于监听状态 netstat
4、epoll_create创建epfd,监控socketFd和所有子进程的管道对端
5、while(1)循环 epoll_wait等待客户端的请求及子进程是否有通知
如果socketFd可读,说明是客户端有连接请求,accept对应连接请求,得到new_fd,循环遍历,找到非忙碌的子进程,将new_fd发送给对应子进程,将对应子进程标识为忙碌,然后父进程关闭new_fd。

判断就绪的描述符 是哪个子进程的管道对端,就将对应子进程标识为非忙碌,同时读出管道内数据。

子进程的实现流程

while(1)
{
1、接收任务,得到newFd
2、通过newFd给客户端发送文件
3、关闭newFd
4、通过写管道,通知父进程完成文件下载任务
}

详细代码见下篇。
Linux网络编程——进程池实现过程详解(2)

Linux网络编程——进程池实现过程详解(1)

标签:编程   pair   log   pch   定义数据   bind   red   创建   cep   

原文地址:https://www.cnblogs.com/Mered1th/p/10859244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!