poll
from select import poll
1. 创建poll对象
p = poll()
2. 添加关注的IO
poll IO 事件分类
POLLIN POLLOUT POLLERR POLLHUP POLLPRI POLLVAL
rlist wlist xlist 断开连接 紧急处理 无效
p.register(s,POLLIN | POLLERR)
p.unregister(s) 取消对IO的关注
3. 进行监控
events = p.poll()
功能 : 监控关注的IO,阻塞等待IO发生
返回值 : events是一个列表,列表中每个元素为一个元 组,代表准备就绪需要处理的IO
events --》 [( fileno, event),(),()]
就绪IO的fileno 哪个事件就绪
因为要获取IO对象调用函数---》通过fileno得到对象
实施方法 : 建立比照字典 {s.fileno():s}
4. 处理IO
epoll
使用方法 : 与poll基本相同
* 生成对象使用epoll() 而不是poll()
* register注册IO事件事件类型改为epoll事件类型
select poll epoll 区别
1. select可以很好支持windows
2. epoll比select和poll效率高,select和poll差不多
3. epoll提供了更多的触发方式
本地套接字
linux下文件类型
b 块设备文件 c 字符设备文件 d 目录