关于SSL_do_handshake阻塞调用

时间:2014-02-21 06:31:20

标签: c openssl dtls

我正在使用底层BIO调用SSL_do_handshake作为阻塞,这意味着它会等到握手完成或发生错误。 有什么办法让我可以从其他线程取消这个等待的呼叫(等待SSL_do_handshake)。 我使用SSL_clear,SSL_shutdown,SSL_free方法,但线程仍在等待SSL_do_handshake函数调用。 请帮忙。

1 个答案:

答案 0 :(得分:0)

这不是很好的方法,但应该有效:

使用close()关闭底层TCP套接字。

使用套接字的任何阻塞IO都将失败,SSL_do_handshake()将返回错误。

但是从其他线程关闭套接字时要小心,因为文件描述符号可以重用。