+ -
当前位置:首页 → 问答吧 → Qt SSL连接求助,急

Qt SSL连接求助,急

时间:2011-12-16

来源:互联网

现在在做一个网络软件,需要对数据加密,服务器端是用python写的,客户端拥Qt,我用Qt的QSslSocket连接服务器,返回这个连接错误提示:the host name did not match any of the valid hosts for this certificate,找了半天,没有找到任何原因,哪位大神知道的,请教一下,谢谢了:
上源码:

C/C++ code

#include <QtCore/QCoreApplication>
#include <QtNetwork>
#include <QSsl>
#include <QSslSocket>
#include <iostream>
#include <QByteArray>
#include <QString>
#include <QFile>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSslSocket socket;
    socket.setProtocol(QSsl::AnyProtocol);
    QFile certFile;
    certFile.setFileName("./cacert.pem");
    QSslCertificate cert(&certFile);
    socket.addCaCertificate(cert);

    socket.connectToHostEncrypted(host,port);
    //socket.ignoreSslErrors();
    if (!socket.waitForEncrypted())
    {
        cout<<"ERROR:"<<socket.errorString().toStdString();

    }

    cout<< socket.readAll().data();

    QByteArray packet;
    packet.append("hello world");
    socket.write(packet);
    socket.flush();

    while (socket.waitForReadyRead())
        cout<< socket.readAll().data();

end:
    return a.exec();
}



作者: yby4769250   发布时间: 2011-12-16

问题补充:
这个问题还有一个怪异的地方就是,我客户端这边发送的数据,服务器端都能收到,而且解密正确,但是服务器端发送数据给客户端时,客户端却没有收到,诡异得很。
用python写的客户端收发都正常,但是用Qt写的就不正常了,求助啊

作者: yby4769250   发布时间: 2011-12-16