我正在尝试使用Qt文档中的示例代码实现SSL服务器。但是,在调用
我通过使用
这是我的服务器代码:
serverSocket->startServerEncryption();
之后,什么也没有发生 - encrypted()
和sslErrors()
信号都没有被触发(我已经在与它们连接的槽中设置了断点)。我通过使用
connectToHostEncrypted
将QSslSocket连接到我监听的端口进行测试。套接字发送数据,但我的服务器没有响应(我使用TCP嗅探器/代理来查看从客户端发送到服务器以及从服务器发送到客户端的所有数据)。这是我的服务器代码:
void SslServer::incomingConnection(int socketDescriptor)
{
qDebug() << "SslServer::incomingConnection()";
QSslSocket *serverSocket = new QSslSocket(this);
if (serverSocket->setSocketDescriptor(socketDescriptor)) {
connect(serverSocket, SIGNAL(encrypted()), this, SLOT(ready()));
connect(serverSocket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(sslErrors(QList<QSslError>)));
serverSocket->startServerEncryption();
} else {
delete serverSocket;
}
}
以下是我如何连接它的方式:
server = new SslServer(this);
server->listen(QHostAddress::Any, 3333);
QSslSocket *socket = new QSslSocket(this);
socket->connectToHostEncrypted("127.0.0.1", 3333);
sslErrors
就足够了。我连接了error
信号,它发出了一个QAbstractSocket::UnknownSocketError
错误。 - sashoalm