Visual studio 2010 CSockt不';无法使用OpenSSL Ssl\u连接失败

Visual studio 2010 CSockt不';无法使用OpenSSL Ssl\u连接失败,visual-studio-2010,visual-c++,mfc,openssl,asyncsocket,Visual Studio 2010,Visual C++,Mfc,Openssl,Asyncsocket,我想将CSocket与OpenSsl一起使用。SSL_连接失败。由于SSL错误,您希望读取错误 我正在连接so Linux SSL套接字和MFC套接字。只有SSL_连接失败 下面添加了示例代码: if(this->Create() == FALSE) { return false; } if(this->Connect(hostip.c_str(),port) == FALSE) { return false; } pSslCtx = SSL_CTX_new(SSL

我想将CSocket与OpenSsl一起使用。SSL_连接失败。由于SSL错误,您希望读取错误

我正在连接so Linux SSL套接字和MFC套接字。只有SSL_连接失败

下面添加了示例代码:

if(this->Create() == FALSE)
{
    return false;
}

if(this->Connect(hostip.c_str(),port) == FALSE)
{
    return false;
}
pSslCtx = SSL_CTX_new(SSLv23_method());

if (SSL_CTX_load_verify_locations(pSslCtx,strSslFile, NULL) != 1)
{
    return false;
}
if (SSL_CTX_set_default_verify_paths(pSslCtx) != 1)
{
    return false;
}
pSSLConn          = SSL_new(pSslCtx);
if(!pSSLConn)
    return false;

SSL_set_fd(pSSLConn, this->m_hSocket);

pBIOConn = BIO_new_socket(this->m_hSocket, BIO_NOCLOSE);

SSL_set_bio(pSSLConn, pBIOConn, pBIOConn);

SSL_set_connect_state(pSSLConn);
if (SSL_connect(pSSLConn) <= 0)
{
    return false;
}
if(this->Create()==FALSE)
{
返回false;
}
如果(此->连接(hostip.c_str(),端口)=FALSE)
{
返回false;
}
pSslCtx=SSL_CTX_new(SSLv23_method());
如果(SSL\u CTX\u加载\u验证\u位置(pSslCtx、strSslFile、NULL)!=1)
{
返回false;
}
如果(SSL\U CTX\U set\U default\U verify\U PATH(pSslCtx)!=1)
{
返回false;
}
pSSLConn=SSL_new(pSslCtx);
如果(!pSSLConn)
返回false;
SSL\u set\u fd(pSSLConn,this->m\u hSocket);
pBIOConn=BIO_new_socket(此->m_hSocket,BIO_NOCLOSE);
SSL设置bio(pSSLConn、pBIOConn、pBIOConn);
SSL设置连接状态(pSSLConn);
如果(SSL_connect(pSSLConn)正确,则如下所示:

SOCKET q = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
BIO *u7 = BIO_new_socket(q, BIO_NOCLOSE);
connect(q, (sockaddr*)&server, sizeof(server));
SSL_set_bio(cSSL, u7, u7);
SSL_connect(cSSL);


我看不到真正的ssl方法、密码或证书。

我没有添加密码和/或证书代码…在上面…我使用的是MFC的CSocket类。不是正常的套接字连接。