epoll一个简单模型设计
来源:互联网 发布:delphi python 编辑:程序博客网 时间:2024/06/06 15:39
Epoll模型主要负责对大量并发用户的请求进行及时处理,完成服务器与客户端的数据交互。其具体的实现步骤如下:
(a) 使用epoll_create()函数创建文件描述,设定将可管理的最大socket描述符数目。
(b) 创建与epoll关联的接收线程,应用程序可以创建多个接收线程来处理epoll上的读通知事件,线程的数量依赖于程序的具体需要。
(c) 创建一个侦听socket描述符ListenSock;将该描述符设定为非阻塞模式,调用Listen()函数在套接字上侦听有无新的连接请求,在 epoll_event结构中设置要处理的事件类型EPOLLIN,工作方式为 epoll_ET,以提高工作效率,同时使用epoll_ctl()注册事件,最后启动网络监视线程。
(d) 网络监视线程启动循环,epoll_wait()等待epoll事件发生。
(e) 如果epoll事件表明有新的连接请求,则调用accept()函数,将用户socket描述符添加到epoll_data联合体,同时设定该描述符为非阻塞,并在epoll_event结构中设置要处理的事件类型为读和写,工作方式为epoll_ET.
(f) 如果epoll事件表明socket描述符上有数据可读,则将该socket描述符加入可读队列,通知接收线程读入数据,并将接收到的数据放入到接收数据的链表中,经逻辑处理后,将反馈的数据包放入到发送数据链表中,等待由发送线程发送。
(a) 使用epoll_create()函数创建文件描述,设定将可管理的最大socket描述符数目。
(b) 创建与epoll关联的接收线程,应用程序可以创建多个接收线程来处理epoll上的读通知事件,线程的数量依赖于程序的具体需要。
(c) 创建一个侦听socket描述符ListenSock;将该描述符设定为非阻塞模式,调用Listen()函数在套接字上侦听有无新的连接请求,在 epoll_event结构中设置要处理的事件类型EPOLLIN,工作方式为 epoll_ET,以提高工作效率,同时使用epoll_ctl()注册事件,最后启动网络监视线程。
(d) 网络监视线程启动循环,epoll_wait()等待epoll事件发生。
(e) 如果epoll事件表明有新的连接请求,则调用accept()函数,将用户socket描述符添加到epoll_data联合体,同时设定该描述符为非阻塞,并在epoll_event结构中设置要处理的事件类型为读和写,工作方式为epoll_ET.
(f) 如果epoll事件表明socket描述符上有数据可读,则将该socket描述符加入可读队列,通知接收线程读入数据,并将接收到的数据放入到接收数据的链表中,经逻辑处理后,将反馈的数据包放入到发送数据链表中,等待由发送线程发送。
- epoll一个简单模型设计
- epoll模型之服务器设计
- 简单高效epoll网络模型
- 一个简单的线程池设计模型
- 一个epoll的简单例子
- epoll模型设计海量级连接服务器
- epoll模型设计海量级连接服务器
- epoll模型设计海量级连接服务器
- 最简单的Epoll模型代码
- 简单linux服务器模型--epoll 2011
- EPOLL模型
- Epoll模型
- epoll模型
- epoll模型
- epoll模型
- Epoll模型
- epoll模型
- Epoll模型
- 经典面试题之链表回路问题
- SQL中Exists的使用
- 开始博客
- 教你怎么测U盘读速与预防冒牌假货
- Scale和Resolution的含义及转换算法
- epoll一个简单模型设计
- ubuntu下抓flash缓存
- 求两个数的最大公约数
- git使用说明
- linux c 一个autotools的最简单例子
- MyEclipse 快捷键
- video4linux(v4l)使用摄像头的实例基础教程
- cocos2d-x介绍和安装(for mac)
- Linux-C学习笔记--单链表的“浮云”操作