我看到 poll() 系统调用即使在对等方关闭套接字之后也会返回 POLLIN 事件。我看到 POLLIN 和 POLLERR 都设置了。即使在 read() 调用返回 -1 之后,这种情况也会继续发生。
我的逻辑仅在没有 POLLIN 时才处理 POLLERR,以确保我读取了在套接字断开连接之前已经到达的任何数据包。结果,我永远不会处理 POLLERR,因为 POLLIN 总是被设置。
为什么 poll() 在套接字错误后返回 POLLIN 和 POLLERR?我应该如何处理这种情况。
谢谢!