0

这种类型的问题(有很多变化)有点回答但是..我确实需要一个套接字上的阻塞连接(我正在使用 SSL),我可以设置超时和最大重试次数等等对于不超过 t 秒是必要的。

我只是希望我可以在操作系统(linux:Ubuntu/CentOS)中设置一些东西,或者在代码(C)中以某种方式来做到这一点,而无需采用丑陋的、人为的方式,比如选择等待、超时事件添加到 epoll关闭套接字。谢谢你。

4

1 回答 1

1

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

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

有关连接调用期间发生的情况的更多信息,请参阅: http: //www.madore.org/~david/computers/connect-intr.html

于 2013-07-11T10:16:53.877 回答