Login · Register
04.09.2010 18:43:35
Aktualnie online
· Gości online: 2

· Użytkowników online: 0

· Łącznie użytkowników: 52
· Najnowszy użytkownik: snake


Reklama
www.ddt.pl

www.maddevblog.eu

Statystyki reklamowe

Statystyki

Monitorowanie:



W sieci od:
24 czerwca 2009


Logowanie
Nazwa użytkownika

Hasło



Nie masz jeszcze konta?
Zarejestruj się

Nie możesz się zalogować?
Poproś o nowe hasło

Ostatnie artykuły

Ostatnio Widziani
· djszalas06:19:01
· kabanek20:11:32
· pipczaqu 1 dzień
· DamianLii 2 dni
· janisz 2 dni
· radzioon 3 dni
· snake 3 dni
· damn 3 dni
· iluvathar 3 dni
· adam2006 6 dni

Zobacz temat
DevQt.pl - Programowanie C++ / Qt :: PROGRAMOWANIE - C++ i Qt :: Szukam Pomocy
Kto jeszcze czyta ten temat? 2 gość(ci)
 Drukuj temat
[QSslSocket] Problem z połączeniem
szarek
#1 Drukuj posta
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:
Pobierz kod źródłowy  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:
Pobierz kod źródłowy  Kod źródłowy
Stan:  QAbstractSocket::ConnectedState
Mode:  2
Blad:  QAbstractSocket::SocketError( 13 )
Stan:  QAbstractSocket::UnconnectedState



Wynik dla klienta:
Pobierz kod źródłowy  Kod źródłowy
Stan:  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:
Podobne Tematy
Temat Forum Odpowiedzi Ostatni post
Connect - problem Szukam Pomocy 3 18.08.2010 10:42:02
QSslSocket - dystrybucja aplikacji Szukam Pomocy 5 18.07.2010 18:56:12
QMoorie - problem z bibliotekami Szukam Pomocy 5 09.05.2010 17:03:48
Problem z trybem release Szukam Pomocy 6 27.03.2010 10:09:39