如何终止非阻塞套接字连接尝试?

时间:2014-01-30 01:32:46

标签: c linux sockets connect nonblocking

使用套接字时如何对连接尝试设置时间限制的问题的典型答案是:

1)使套接字无阻塞,

2)致电connect()

3)使用select()查看连接是否成功。

目前尚不清楚的是,如果无法建立连接,如何在一定时间后终止连接尝试。据我所知,即使select()返回(提供select()超时小于操作系统超时),操作系统仍将继续尝试建立连接。

这是对的吗?如果是这样,我该如何停止这个过程?切换插座是否足够阻塞?除了关闭套接字之外还有其他选择吗?感谢。

1 个答案:

答案 0 :(得分:0)

关闭套接字。如果您确定连接时间过长,则不会对您有任何进一步的用处。操作系统将停止尝试,释放资源等所有您想要的东西。