Товарищи! Вопрос на засыпку! Как думаете, почему происходит следующее непонятное действо?
Есть два сервера imap.mail.ru и imap.rambler.ru. Соединяюсь с ними по порту 993, используя QSslSocket.
При этом, сервер рамблера работает как надо - соединение, обмен ключами и приходит сигнал readyRead().
Если же использовать сервер мэйла, то все так же, за исключением того, что сигнал readyRead() не приходит.
Если же убрать секцию с waitForEncrypted, то все ок, сигнал приходит! В чем может быть засада?
main.cpp ::
#include <QtCore/QCoreApplication>
#include <QtNetwork/QSSlSocket>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSslSocket socket;
socket.connectToHostEncrypted("imap.mail.ru", 993);
//socket.connectToHostEncrypted("imap.rambler.ru", 993);
if(socket.waitForEncrypted(2000)) {
//
qDebug() << "Ssl handshake complete";
} else {
//
qDebug() << "Ssl handshake not complete";
}
if (socket.waitForConnected(2000)) {
//
qDebug() << "Connected";
} else {
//
qDebug() << "Timeout";
}
if (socket.waitForReadyRead(28000)) {
//
qDebug() << "ReadyRead";
} else {
//
qDebug() << "Server in Silence";
}
return a.exec();
}
testSocket.pro ::
#-------------------------------------------------
#
# Project created by QtCreator 2013-03-29T20:30:17
#
#-------------------------------------------------
QT += core network
QT -= gui
TARGET = testSocket
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp