Название: Проблема с QSslSocket
Отправлено: kryuch от Ноябрь 25, 2012, 22:46
Добрый день. Создал SSL-сервер SslServer:: public QTcpServer void SslServer::incomingConnection(int handle) { socket = new QSslSocket(this); if (socket->setSocketDescriptor(handle)) { qDebug()<<"yes\t"<<socket; connect(socket, SIGNAL(encrypted()), this, SLOT(on_encrypted())); connect(socket, SIGNAL(readyRead()), this, SLOT(on_dataRead())); connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(on_sslErrors(QList<QSslError>))); connect(socket,SIGNAL(disconnected()),this,SLOT(slotTCPServerDisconnected())); connect(socket,SIGNAL(readyRead()),this,SLOT(slotTCPServerReadyRead())); socket->setPrivateKey("/opt/terminus/share/cert/server.key", QSsl::Rsa); socket->setLocalCertificate("/opt/terminus/share/cert/server.crt");
socket->startServerEncryption(); emit message("New connection...\r\n"); foreach(QSslError err, socket->sslErrors()) { emit message(QString(err.errorString()).append("\r\n")); }
} else delete socket; }
при попытке подключиться socket = new QSslSocket(); connect(socket, SIGNAL(connected()), SLOT(waitForGreeting())); connect(socket, SIGNAL(readyRead()), SLOT(readResponse())); connect(socket, SIGNAL(connectionClosed()), SLOT(quit())); connect(socket, SIGNAL(delayedCloseFinished()),SLOT(quit())); socket->setPrivateKey("/opt/terminus/share/cert/server.key", QSsl::Rsa); socket->setLocalCertificate("/opt/terminus/share/cert/server.crt"); socket->connectToHost("127.0.0.1", 3428);
if (!socket->waitForEncrypted()) { qDebug() << socket->errorString(); } else { socket->write("GET / HTTP/1.0\r\n\r\n"); while (socket->waitForReadyRead()) qDebug() << socket->readAll().data(); }
выдается На сервере никаких ошибок не выводится. Что я делаю неправильно?
Название: Re: Проблема с QSslSocket
Отправлено: navrocky от Ноябрь 26, 2012, 18:01
ConnectToHost тоже не сразу срабатывает, надо подождать...
Название: Re: Проблема с QSslSocket
Отправлено: kryuch от Декабрь 02, 2012, 16:48
ConnectToHost тоже не сразу срабатывает, надо подождать...
Всмысле? Он ведь пока не сработает не возвращает управление. Или это надо обрабатывать? Подключение происходит, сервер его фиксирует, а дальше проблема уже
Название: Re: Проблема с QSslSocket
Отправлено: thechicho от Декабрь 06, 2012, 14:31
почему socket->connectToHost("127.0.0.1", 3428); а не socket->connectToHostEncrypted("127.0.0.1", 3428); ?
|