Kto jeszcze czyta ten temat? 1 gość(ci)
|
[QSslSocket] Problem z połączeniem
|
| szarek |
Dodany dnia 28.07.2010 18:13:23
|
Nowy Użytkownik

Postów: 1
Data rejestracji: 28.07.10
|
Załączam całe obydwa programy. Mam problem z zaszyfrowaniem połączenia między klientem a serwerem(tworzone w QtCreator 2.0). Klasa po stronie serwera:
Kod źródłowy#include "polaczeniessl.h"
PolaczenieSSL::PolaczenieSSL(QWidget *parent)
{
}
PolaczenieSSL::~PolaczenieSSL()
{
}
void PolaczenieSSL::incomingConnection(int socketDescriptor)
{
serverSocket = new QSslSocket(this);
connect(serverSocket,SIGNAL(encrypted()), this, SLOT(gotowy()));
connect(serverSocket,SIGNAL(stateChanged(QAbstractSocket::SocketState)),SLOT(stany(QAbstractSocket::SocketState)));
connect(serverSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(bledy(QAbstractSocket::SocketError)));
connect(serverSocket,SIGNAL(sslErrors(QList<QSslError>)),this,SLOT(bledySSL(QList<QSslError>)));
connect(serverSocket,SIGNAL(modeChanged(QSslSocket::SslMode)),this,SLOT(mode(QSslSocket::SslMode)));
connect(serverSocket,SIGNAL(peerVerifyError(QSslError)),this,SLOT(bladPeer(QSslError)));
serverSocket->setProtocol(QSsl::AnyProtocol);
QFile *file = new QFile("server.key");
QSslKey key(file, QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey, "server");
serverSocket->setPrivateKey(key);
serverSocket->setLocalCertificate("server.crt");
serverSocket->addCaCertificates("/etc/ssl/certs");
if (serverSocket->setSocketDescriptor(socketDescriptor))
{
serverSocket->startServerEncryption();
}
else
{
delete serverSocket;
}
}
void PolaczenieSSL::gotowy()
{
qDebug()<<"gotowy";
}
void PolaczenieSSL::stany(QAbstractSocket::SocketState state)
{
qDebug()<<"Stan: "<<state;
}
void PolaczenieSSL::bledy(QAbstractSocket::SocketError err)
{
qDebug() << "Blad: " << err;
}
void PolaczenieSSL::bledySSL(QList<QSslError> l)
{
for(int i=0;i<l.size();++i)
{
qDebug()<<"BladSSL: "<<l.at(i).errorString();
}
}
void PolaczenieSSL::mode(QSslSocket::SslMode s)
{
qDebug()<<"Mode: "<<s;
}
void PolaczenieSSL::bladPeer(QSslError b)
{
qDebug()<<"PeerBlad: "<<b;
}
Wynik dla serwera:
Kod źródłowyStan: QAbstractSocket::ConnectedState
Mode: 2
Blad: QAbstractSocket::SocketError( 13 )
Stan: QAbstractSocket::UnconnectedState
Wynik dla klienta:
Kod źródłowyStan: QAbstractSocket::HostLookupState
Stan: QAbstractSocket::ConnectingState
Stan: QAbstractSocket::ConnectedState
Mode: 1
Blad: QAbstractSocket::RemoteHostClosedError
Stan: QAbstractSocket::ClosingState
Stan: QAbstractSocket::UnconnectedState
Link: http://www.speedyshare.com/files/23596023/pliki.zip
Edytowane przez szarek dnia 30.07.2010 22:52:06 |
| |
|
Przeskocz do forum:
|