如何处理OpenSSL的SSL
1个回答
2016-03-28
展开全部
SSL_WANT_READ意味着在SSL引擎目前无法加密你,因为它是在等待更多的输入数据(无论是作为初始握手的一部分,或作为重新谈判的一部分),所以,一旦你的下一次读取已经完成,你已经推即通过SSL引擎到达的数据可以重试写操作.
同样,SSL_WANT_WRITE意味着在SSL引擎正在等待您从中提取一些数据,并将其发送给对端.
我写了一篇关于使用OpenSSL与非阻塞和异步套接字早在2002年为Windows开发者杂志(转载here ),虽然这篇文章表面上是针对Windows代码的主体是相同的其他平台.本文附带了一些代码,集成了OpenSSL的在Windows异步套接字和其中涉及整个SSL_WANT_READ / SSL_WANT_WRITE问题.
从本质上讲,当你得到一个SSL_WANT_READ你需要排队出站数据,直到你有一个完整的阅读,你已经通过了新的入站数据进入的SSL引擎,一旦发生这种情况,您可以重新尝试发送您的出站数据.
同样,SSL_WANT_WRITE意味着在SSL引擎正在等待您从中提取一些数据,并将其发送给对端.
我写了一篇关于使用OpenSSL与非阻塞和异步套接字早在2002年为Windows开发者杂志(转载here ),虽然这篇文章表面上是针对Windows代码的主体是相同的其他平台.本文附带了一些代码,集成了OpenSSL的在Windows异步套接字和其中涉及整个SSL_WANT_READ / SSL_WANT_WRITE问题.
从本质上讲,当你得到一个SSL_WANT_READ你需要排队出站数据,直到你有一个完整的阅读,你已经通过了新的入站数据进入的SSL引擎,一旦发生这种情况,您可以重新尝试发送您的出站数据.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询