Epoll服务器
来源:互联网 发布:got it get it gotcha 编辑:程序博客网 时间:2024/05/17 23:40
1. 编写epoll服务器
epoll底层实现需要3个接口
在调用epoll_create时操作系统会创建一颗红黑树存放socket和一个队列存放就绪事件。
epoll_ctl函数用于控制某个文件描述符上的事件,可以注册事件,修改事件,删除事件。
参数:
epfd:由epoll_create生成的epoll专用的文件描述符
op:要进行的操作,可能的取值
EPOLL_CTL_ADD 注册
EPOLL_CTL_MOD 修改
EPOLL_CTL_DEL 删除
fd:关联的文件描述符
event:指向epoll_event的指针
调用epoll_wait时查看就绪队列
参数:
epoll_event:用于回传待处理事件的数组
maxevent;每次能处理的事件的最大数目
timeout:等待I/O事件发生的超时值
在浏览器验证的结果如图所示
2. 总结epoll优缺点
(1)epoll服务器规避了多路转接的所有问题;
(3)epoll服务器的IO效率不随文件描述符数目的增加而线性下降;
(2)epoll服务器支持一个进程打开大数目的文件描述符;
(4)内核采用红黑树机制通知上层哪些事件就绪
(5)底层采用内存映射技术,减少了内存拷贝的开销。
阅读全文
0 0
- epoll服务器
- epoll服务器
- epoll服务器
- epoll服务器
- Epoll服务器
- epoll服务器
- epoll服务器
- linux服务器编程--EPOLL
- epoll服务器示例
- 并发服务器之epoll
- epoll服务器编程-demo
- epoll服务器开发详解
- epoll回显服务器
- Epoll服务器架构
- 服务器epoll初用
- linux下epoll服务器
- python epoll开发服务器
- Epoll模型服务器实现
- Python编程_Lesson015_类的基础用法
- 使用视图
- 百练_2718:晶晶赴约会
- 常用nodejs 模块集合。
- POJ 1442 Black Box (Treap)
- Epoll服务器
- 如何解决MySQL 5.7 Access denied for user 'root'@'localhost' (using password YES)问题?
- 对this的解读
- MySQL"十宗罪"
- 自定义Ant
- 怎样委婉的拒酒敬酒
- 设计模式——模板方法模式( Template Method Pattern)
- 端口号调研、URG和PSH、及TCP的计时器
- eclipse报错Resource is out of sync with the file system的解决方法