我正在将Qt用于Unix域套接字,但我有一个问题: 我希望服务器端在建立连接后立即阅读从客户端发送的消息,以下是我的代码
if (!server->listen("mySocket2")) {
//lisetn for new connection
close();
return;
}
connect(server, &QLocalServer::newConnection, this, &MainWindow::readData);
在readData函数中
QLocalSocket *clientConnection = server->nextPendingConnection();
connect(clientConnection, &QLocalSocket::disconnected,
clientConnection, &QLocalSocket::deleteLater);
connect(clientConnection,&QLocalSocket::readyRead,
this,&MainWindow::readyReadData);
在readyReadData函数中
QByteArray block;
block=clientConnection->readAll();
qDebug()<<block;
clientConnection->disconnectFromServer();
但是应用程序总是崩溃,您能在这方面给我建议吗?
答案 0 :(得分:0)
在没有挂起的连接时,我看不到任何条件处理。这种情况将导致nextPendingConnection()返回nullptr(实际上只是一个零),这可能会也可能不会导致信号/插槽连接失败。