Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在阅读 W. Richard Stevens 的 Unix Network Programming。作者说,如果阻塞连接调用被中断,我可以使用“选择”作为非阻塞连接的选择。
我很困惑。如果我应该调用一个非阻塞连接然后在新的 socktfd 上进行选择,还是应该在传递给前一个阻塞连接调用的旧 socketfd 上进行选择?
我在一篇文章中看到,如果使用 SA_RESTART 标志传递信号操作,则说“连接”是可重新启动的。如果是这样,我可以完全忽略阻塞连接中断的情况吗?
如果您使用阻塞呼叫,您将必须检查错误代码并根据错误代码重试,如果中断,该代码将是 EINTR。否则使用由于中断而不会返回的选择。选择仅在超时、错误或读写信号的情况下返回。