关于openssl库中SSL_read函数阻塞问题
最近在研究模拟登录问题,在取服务器返回的数据的时候出现SSL_read阻塞,代码如下
读完数据后会再一次调用SSL_read,按理来说此时nErr应该返回0,可是SSL_read函数并未返回,而是一直阻塞,请问这是什么原因呢?
while(TRUE)
{
FD_SET fds;
FD_ZERO(&fds);
FD_SET(socketClient, &fds);
char recvData[1000] = {0};
int nRecvLen;
int nErr = SSL_read(ssl, recvData, sizeof(recvData));
if (nErr <= 0)
{
break;
}
int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, recvData, -1, NULL, 0);
WCHAR *pUnicode = new WCHAR[unicodeLen + 1];
memset(pUnicode, 0, (unicodeLen + 1)*sizeof(wchar_t));
MultiByteToWideChar(CP_UTF8, 0, recvData, -1, pUnicode, unicodeLen);
CString cs(pUnicode);
delete[]pUnicode;
pUnicode = NULL;
//MessageBox(NULL,cs,"",MB_OK);
cstrRecvData += cs;
}读完数据后会再一次调用SSL_read,按理来说此时nErr应该返回0,可是SSL_read函数并未返回,而是一直阻塞,请问这是什么原因呢?
...全文
相关推荐
openssl库C语言完整版
**OpenSSL库C语言完整版详解**OpenSSL是一个强大的安全套接字层密码库,它包含各种主要的密码算法、常用的密钥和证书封装管理功能,以及SSL协议,并提供丰富的应用程序用于测试或其他目的。
利用OpenSSL实现非阻塞通讯C++代码
可以转载,转载请注明出处,谢谢! 关于OpenSSL的原理以及OpenSSL如何安装、使用、测试demo请参看我之前的两篇博文。 这篇博文主要实现了如何在win64下基于VS2012实现OpenSSL的非阻塞通讯。参考了以下几篇博文的内容,表示感谢: https://blog.csdn.net/fly2010love/article/details/46470033 https://www...
免费openssl 生成ssl证书[ssl证书生成]
使用OpenSSL工具可以生成SSL证书。具体步骤如下:1. 生成私钥(Key):使用OpenSSL的genrsa命令,可以生成RSA私钥。
OpenSSL生成的ssl证书
OpenSSL是一个开源的库,包含了各种加密算法,它提供了生成SSL证书的功能。
解决Python找不到ssl模块问题 No module named _ssl的方法
SSL模块依赖于操作系统级别的OpenSSL库,因此当系统中缺少或配置不正确时,Python就无法正常导入此模块。解决这个问题的步骤如下:1.


网络编程
