有关epoll的EPOLLOUT
来源:互联网 发布:网络教育课程 编辑:程序博客网 时间:2024/05/29 16:35
原文:http://blog.csdn.net/tanlijun37/article/details/9207627
epoll使用的资料网上一大把,EPOLLIN(读)监听事件的类型,大家一般使用起来一般没有什么疑问,无非是监听某个端口,一旦客户端连接有数据发送,它马上通知服务端有数据,一般用一个回调的读函数,从这个相关的socket接口读取数据就行了。但是有关EPOLLOUT(写)监听的使用,网上的资料却讲得不够明白,理解起来有点麻烦。因为监听一般都是被动操作,客户端有数据上来需要读写(被动的读操作,EPOLIN监听事件很好理解,但是服务器给客户发送数据是个主动的操作,写操作如何监听呢?
如果将客户端的socket接口都设置成 EPOLLIN | EPOLLOUT(读,写)两个操作都设置,那么这个写操作会一直监听,有点影响效率。经过查阅大量资料,我终于明白了EPOLLOUT(写)监听的使用场,一般说明主要有以下三种使用场景:
1: 对客户端socket只使用EPOLLIN(读)监听,不监听EPOLLOUT(写),写操作一般使用socket的send操作
2:客户端的socket初始化为EPOLLIN(读)监听,有数据需要发送时,对客户端的socket修改为EPOLLOUT(写)操作,这时EPOLL机制会回调发送数据的函数,发送完数据之后,再将客户端的socket修改为EPOLL(读)监听
3:对客户端socket使用EPOLLIN 和 EPOLLOUT两种操作,这样每一轮epoll_wait循环都会回调读,写函数,这种方式效率不是很好
0 0
- 有关epoll的EPOLLOUT
- 有关epoll的EPOLLOUT
- 有关epoll的EPOLLOUT
- 有关epoll的EPOLLOUT
- Epoll ET模型下EPOLLOUT事件的处理
- 关于epoll边缘触发模式(ET)下的EPOLLOUT触发
- send() 和 EPOLLOUT 的关系
- 简述Linux Epoll ET模式EPOLLOUT和EPOLLIN触发时刻
- 简述Linux Epoll ET模式EPOLLOUT和EPOLLIN触发时刻
- 简述Linux Epoll ET模式EPOLLOUT和EPOLLIN触发时刻
- 有关epoll读写监听的处理
- 有关epoll与select机制的剖析
- select.epoll多路复用web服务器---sock.fileno;select.EPOLLIN;select.EPOLLOUT;
- 关于EPOLLOUT
- Windows Socket I/O模型 以及 Linux Epoll模型 的有关资料
- Windows Socket I/O模型 以及 Linux Epoll模型 的有关资料
- Windows Socket I/O模型以及Linux Epoll模型的有关资料
- Windows Socket I/O模型 以及 Linux Epoll模型 的有关资料
- 本人常用资源整理(ing...)
- css学习笔记——CSS 属性 选择器
- Windows Azure(世纪互联版)- 几个注意事项
- 黑马程序员_IO流学习第一天
- [LeetCode] Binary Tree Level Order Traversal
- 有关epoll的EPOLLOUT
- const关键字
- string 将指定的字符或字符串全部替换成特定的字符或字符串
- IOS7 label 宽度高度自适应
- Linux之旅(I)——Ubuntu 12.04/14.04 LTS 安装
- STM8使用----STVD(COSMIC)定义变量指定其类型和位定义
- 解析:求最大公约数的“辗转相除法原理”
- Linux环境进程间通信(五):共享内存(上)
- 几种控制器介绍