微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

poll在input数据时调用0超时

我的应用程序通过调用poll()以零超时来检查TCP套接字中的传入数据。 99%的时间工作正常,当有套接字上的数据设置POLLIN标志。 然而,有时在套接字上有数据(我在wireshark上看到这个消息),但是poll()返回0(超时)并且不设置POLLIN标志。 当另一条消息到达时,它会在几秒钟之后设置POLLIN标志。

这是正常的行为? poll()在超时之前总是检查传入数据吗?

根据另一个问题的答案 ,Linux的手册页不太清楚。

为什么在调用bind()时将sockaddr_in转换为sockaddr?

Python套接字GetAddrInfo(GAI)错误

Windows TCP套接字recv延迟

如何使用python和执行命令连接到远程Windows机器

为什么select()在第一次超时后总是返回0

linux connect()超时和syncookies

C ++ Windows套接字:下载一个HTML文件

使用Perl的高性能套接字服务器

poll()不能检测到套接字本地closures时的事件?

与TCP套接字非常奇怪的断开连接

我在poll()中传递了超过10毫秒的超时错误。 经过进一步的调查,我发现这个问题是由一个包装unix socket API的库中的一个bug造成的。 它正在将数据从套接字加载到缓冲区中,然后在从缓冲区中消耗所有字节之前轮询套接字以获取更多数据。 无论如何感谢您的意见。

所以看来,poll()工作正常,即使超时为0。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐