如何解决阻塞套接字(用于SSL握手)的Connect()超时问题?

时间:2013-07-11 07:19:45

标签: c linux sockets tcp network-programming

这类问题(有很多变化)有点回答但是...... 我确实需要在套接字上使用阻塞连接(我使用SSL),我可以设置超时和最大重试次数,以及从不持续超过t秒所需的一切。

我只是希望我可以在操作系统中设置一些东西(linux:Ubuntu / CentOS)或某种方式在代码(C)中执行此操作,而不是选择等待,超时事件等丑陋的人工方式添加到关闭套接字的epoll。谢谢。

1 个答案:

答案 0 :(得分:1)

最简单的方法是在连接呼叫之前和之后使用警报系统调用并处理警报信号,但这不是最好和最有用的方法。更好和推荐的方法是使用非阻塞套接字并使用轮询或选择系统调用来处理建立连接的不同阶段。但是,如果您不想使用非阻塞IO,则唯一的方法是使用警报。

有关使用非阻塞套接字的教程,请参阅:http://developerweb.net/viewtopic.php?id=3196

有关连接通话期间发生的情况的详细信息,请参阅:http://www.madore.org/~david/computers/connect-intr.html