我正在阅读 openssl 编程教程。
我不能让服务器应用程序在单个连接的任何操作上被阻塞,
因此我将使用非阻塞套接字。
因为看起来,ssl 握手发生在 ssl_accept 和 ssl_connect,
这可能会被阻止,我必须在 ssl_accept 调用之前将套接字设置为非阻塞。
教程文档说我需要在 SSL_read 上处理 SSL_ERROR_WANT_WRITE(当然还有 SSL_ERROR_WANT_READ),因为 SSL 重新握手可以随时发生。
出于同样的原因,SSL_write 上的 SSL_ERROR_WANT_READ。
从文档中,
如果我们尝试重新握手,我们会得到 WANT_WRITE,并且我们会在重新握手期间阻止写入。
我们需要等待套接字是可写的,但当它是时重新启动读取
我对“重新”握手感到困惑。
我不打算保存 ssl 状态并重用它(这称为会话恢复?)在第一次握手之后,我不必为同一连接处理握手。
我想知道当我不打算使用会话恢复时,是否还需要担心 SSL_read 上的 WANT_WRITE,反之亦然。
谢谢