python epoll 问题
最近在研究这个
这段代码不懂是什么意思 epoll.register(conn.fileno(), select.EPOLLIN | select.EPOLLET)
上网查了一下 是注册事件 但是这里面加了 “select.EPOLLIN | select.EPOLLET” 是注册这两个事件到这个句柄吗?
还有就是 这个register 怎么没看见在哪里设置回调函数呢?
谢谢 最好能说下 python的EPOLL的流程 不胜感激!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
引用来自#3楼“asdfsx”的帖子
epoll.register(conn.fileno(), select.EPOLLIN | select.EPOLLET)
在epoll里注册对conn.fileno()进行监听,监听的事件是select.EPOLLIN | select.EPOLLET
然后用epoll.poll()来对注册过的conn定时检查
如果有conn发生select.EPOLLIN | select.EPOLLET事件,则返回这个conn
然后再进行处理
求高人指正
PS. python的源码包我扔到哪里去了啊!!!
附一段代码
epoll = select.epoll()
epoll.register(serversocket.fileno(), select.EPOLLIN)
try:
connections = {}; requests = {}; responses = {}
while True:
events = epoll.poll(1)
for fileno, event in events:
..........
epoll.register(conn.fileno(), select.EPOLLIN | select.EPOLLET)
在epoll里注册对conn.fileno()进行监听,监听的事件是select.EPOLLIN | select.EPOLLET
然后用epoll.poll()来对注册过的conn定时检查
如果有conn发生select.EPOLLIN | select.EPOLLET事件,则返回这个conn
然后再进行处理
求高人指正
PS. python的源码包我扔到哪里去了啊!!!
附一段代码
epoll = select.epoll()
epoll.register(serversocket.fileno(), select.EPOLLIN)
try:
connections = {}; requests = {}; responses = {}
while True:
events = epoll.poll(1)
for fileno, event in events:
..........
补充下问题 socket.fileno() 返回的是当前正在连接文件句柄吗?