python epoll 问题

发布于 2021-11-12 23:51:42 字数 341 浏览 900 评论 3

最近在研究这个

 这段代码不懂是什么意思  epoll.register(conn.fileno(), select.EPOLLIN | select.EPOLLET)

   上网查了一下 是注册事件 但是这里面加了 “select.EPOLLIN | select.EPOLLET” 是注册这两个事件到这个句柄吗?

还有就是 这个register 怎么没看见在哪里设置回调函数呢?

谢谢  最好能说下 python的EPOLL的流程  不胜感激!


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤独患者 2021-11-14 02:45:37

引用来自#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:

        ..........

如此安好 2021-11-14 02:20:50

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:

        ..........

筱武穆 2021-11-14 01:38:10

补充下问题 socket.fileno() 返回的是当前正在连接文件句柄吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文