我使用了非阻塞套接字。对于普通的TCP连接,我按照这里的方式进行操作:Non blocking socket - how to check if a connection was successful?
但是对于SSL_connect调用,我无法使其工作。
我理解应该: 1. 反复调用SSL_connect。 2. 检查SSL_get_error是否为SSL_ERROR_WANT_READ或SSL_ERROR_WANT_WRITE。 3. 如果是这样,那么我不确定该做什么。我应该继续调用SSL_connect直到我不再得到它吗?还是应该像普通套接字一样,使用read_fds或write_fds检查套接字,并使用FD_ISSET检查,如果是,则使用SO_ERROR检查getsockopt?
基本上,对于非阻塞套接字和SSL_connect,什么会告诉我连接已成功? 我已经查看了其他示例,但没有一个清晰明了。
poll
或select
API 等待适当的套接字事件,并重复操作。 - Valeri AtamanioukSSL_connect
函数。此函数不是用于低级连接操作,而是用于安全协议的设置。 - Valeri Atamaniouk