有关epoll读写监听的处理
来源:互联网 发布:windows 自动运行程序 编辑:程序博客网 时间:2024/06/02 13:16
原文: 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读写监听的处理
- 有关epoll的EPOLLOUT
- 有关epoll的EPOLLOUT
- 有关epoll的EPOLLOUT
- 有关epoll的EPOLLOUT
- epoll的读写方式
- 有关epoll与select机制的剖析
- epoll主进程监听,子进程逻辑处理
- 有关.ini文件的读写
- epoll中读写数据 的注意事项
- 有关乱码的处理
- 有关乱码的处理
- 有关乱码的处理
- 有关乱码的处理
- 有关乱码的处理
- 有关乱码的处理
- 有关字符串的处理
- 有关Date的处理
- 使用 udev 高效、动态地管理 Linux 设备文件
- CreateEvent()的用法
- Java SSL 服务器 客户端通信 试用
- 冠心病胸闷气短不需要再做心脏支架手术了
- android.os.NetworkOnMainThreadException fixed
- 有关epoll读写监听的处理
- NSUnknownKeyException', reason: '[<UIApplication 0x8a58320> setValue:forUndefinedKey:]
- boa web服务器移植
- 在ubuntu 12.04上安装android sdk及配置jdk开发环境
- 位运算介绍
- Struts-Menu角色权限的实例代码
- windows bat脚本编写
- 近期汇总的PHP小技巧
- SSL安全证书技术十问