做企业网站注意,卢氏县网站建设推广,小米公司网站前建设分析,桂城网站设计使用方法:基本与poll相同
生成对象改为epoll()
将所有事件类型改为EPOLL类型epll特点
epoll 效率比select poll要高
epoll监控数量比select 要多
epoll的触发方式比pollduo(EPOLLET边缘触发)
poll_server.py 完成tcp并发服务
Io多路复用实现并发建立fileno -…使用方法:基本与poll相同
生成对象改为epoll()
将所有事件类型改为EPOLL类型epll特点
epoll 效率比select poll要高
epoll监控数量比select 要多
epoll的触发方式比pollduo(EPOLLET边缘触发)poll_server.py 完成tcp并发服务
Io多路复用实现并发建立fileno -- io对象字典用于io查找from select import *
from socket import *
s socket()
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind((0.0.0.0,4444))
s.listen(3)
#创建epoll对象
ep epoll()
#建立查找字典,通过一个IO的fileno找到io对象
fdmap {s.fileno():s}
#关注s
ep.register(s,EPOLLIN|EPOLLERR)
#循环监控IO发生
while True:fd,events ep.poll()if fd s.fileno():c,addr fdmap[fd].accept()print(coonect from,addr)#关注客户端连接套接字ep.register(c,EPOLLIN|EPOLLERR)fdmap[c.fileno()]celif events EPOLLIN:#判断是否为POLLIN就绪datafdmap[fd].recv(1024).decode()if not data:ep.unregister(fd)#取消关注fdmap[fd].close()del fdmap[fd]#从字典删除continueprint(data)fdmap[fd].send(bok)
select,poll默认都是水平触发如果操作系统监听到了io的把要处理的io发给应用层如果应用层不处理就会一直发送直到处理边缘触发相反