0

我正在阅读 W. Richard Stevens 的 Unix Network Programming。作者说,如果阻塞连接调用被中断,我可以使用“选择”作为非阻塞连接的选择。

我很困惑。如果我应该调用一个非阻塞连接然后在新的 socktfd 上进行选择,还是应该在传递给前一个阻塞连接调用的旧 socketfd 上进行选择?

我在一篇文章中看到,如果使用 SA_RESTART 标志传递信号操作,则说“连接”是可重新启动的。如果是这样,我可以完全忽略阻塞连接中断的情况吗?

4

1 回答 1

0

如果您使用阻塞呼叫,您将必须检查错误代码并根据错误代码重试,如果中断,该代码将是 EINTR。否则使用由于中断而不会返回的选择。选择仅在超时、错误或读写信号的情况下返回。

于 2013-03-16T04:57:38.257 回答