Я пытаюсь запустить простой клиент / сервер для реализации связи с использованием QSslSocket.Я работаю в Windows (к сожалению) и использую QtCreator для большего удобства.
Когда я пытаюсь со стороны клиента подключиться к серверу, используя MyQSslSocket->connectToHostEncrypted(ip, port)
, я получаю следующее сообщение:
qt.network.ssl: QSslSocket :: connectToHostEncrypted: сбой инициализации TLS
Когда я печатаю выданную ошибку, я получаю следующее:
QAbstractSocket :: SocketError (20)
В документации мы можем обнаружить, что этот код ошибки соответствует QAbstractSocket::SslInternalError
, описание которого:
"Библиотека SSLused сообщил о внутренней ошибке. Это, вероятно, является результатом неправильной установки или неправильной конфигурации библиотеки. "
После некоторых исследований я обнаружил, что Qt не предоставляет OpenSSL сам по себе, поэтому я установил его (двоичные файлы, для 32- и 64-разрядных версий, чтобы быть уверенным) отсюда https://slproweb.com/products/Win32OpenSSL.html.
Во время установки dll была скопирована в C: \ Windows \ System32 (для 64-разрядных).Затем я проверил, что переменная окружения PATH
действительно содержит эту папку.
В этот момент я попытался снова, но у меня все еще была та же проблема, как будто установка OpenSSL все еще не найдена.
Когда я печатаю вывод следующих вызовов (в основной функции моего клиента):
qDebug() << QSslSocket::supportsSsl();
qDebug() << QSslSocket::sslLibraryVersionString();
я получаю следующие выходные данные:
false""
Мой вопрос: как заставить QSslSocket::supportsSsl()
вернуть истину?
Если кто-нибудь может научить меня тому, что я пропустил, что я делаю неправильно и сказать мне, что я долженсделать, чтобы это SSL-соединение работало правильно, я был бы очень признателен.
Fareanor.
PS: Извините за длинный вопрос, но я думаю, что важно четко выявить проблемуи контекст, чтобы помочь вам легко понять проблему и дать мне более актуальные ответы.