尝试 SSL_write 时是否出现以下错误:
error:1409F07F:SSL routines:SSL3_WRITE_PENDING: bad write retry
最佳答案
原因非常简单:当 SSL_Write 返回 SSL_ERROR_WANT_WRITE 或 SSL_ERROR_WANT_READ 时,在满足条件(套接字上可进行读/写)后,您必须再次使用完全相同的参数重复调用 SSL_write。
使用不同的参数调用它,将产生 1409F07F 错误写入重试错误。
例如,当 ptr = 0xABCDEFGH、size = 4096 的 SSL_write(ssl, ptr, size) 因 SSL_ERROR_WANT_READ 或 SSL_ERROR_WANT_WRITE 失败时,重试 SSL_write 调用时,参数 ptr 和 size 应相同。如果 ptr 是指向与原始调用中相同内容的副本的另一个指针,则它不等效。
但是,可以通过设置 SSL_MODE_ENABLE_PARTIAL_WRITE 和/或 SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 来更改 SSL_write 的默认行为。
<小时/>感谢@ShriramV 的澄清评论,并将其纳入答案
关于openssl - 为什么我在尝试 SSL_write 时收到 "error:1409F07F:SSL routines:SSL3_WRITE_PENDING: bad write retry"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2997218/