提问人:benrush 提问时间:11/16/2023 更新时间:11/16/2023 访问量:33
使用 epoll 和 openssl 的非阻塞套接字是否可能导致死循环?
Could non-blocking socket using epoll and openssl possibly cause dead loop?
问:
我想知道以下情况是否会导致死循环:
在客户端和服务器之间建立了非阻塞 TCP 连接,并且服务器正在使用 epoll 接收其可读事件
客户端向服务器发送了一些数据,但这些数据足以让底层 OPENSSL 的 BIO 满足函数继续运行的需求,因此当服务器在其上使用 SSL_read() 时,它会生成SSL_ERROR_WANT_READ错误代码
此时,客户端不会继续传输任何新数据,在服务器端,由于还有一些数据需要读取,因此始终会触发EPOLL_IN,并且结果将始终SSL_ERROR_WANT_READ,从而导致它可能是一个死循环
答: 暂无答案
评论