gpt4 book ai didi

Python:选择.POLLHUP

转载 作者:行者123 更新时间:2023-11-30 22:57:55 26 4
gpt4 key购买 nike

我在 Ubuntu 上通过套接字使用 select.poll,并注册了 POLLIN、POLLERR 和 POLLHUP。

我的理解是,当POLLIN事件发生并且recv()没有返回数据时,表明对端已断开连接。我的测试似乎验证了这一点。

但是为什么我没有得到 POLLHUP ?这有不同的语义吗?

最佳答案

事件值是位图。

如果您得到 POLLIN(value:1),则表示您有东西可读,
如果得到 POLLHUP(value:16),则输入结束,
因此,当您得到 POLLIN(1) & POLLHUP(16) = 17 时,这意味着您的输入已结束并且您仍然需要从缓冲区中读取内容,

从缓冲区中读取所有内容后,每次调用 poll() 时都只会获得 POLLHUP :
在这种情况下,将文件描述符保留在轮询列表中是没有用的,
最好立即取消注册该文件描述符。

关于Python:选择.POLLHUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com