Qt:从套接字接收数据的服务器

Qt: server receiving data from a socket

本文关键字:数据 服务器 套接字 Qt      更新时间:2023-10-16

我正在使用Qt并尝试创建一个客户端-服务器连接。每当我单击客户端应用程序中的按钮时,套接字就会连接到服务器并发送一些数据。问题是我不知道如何接收数据。这些是我的纽扣槽。

void MainWindow::func_button_one(){
socket->connectToHost("127.0.0.1", 1324);
if(socket->waitForConnected(1000)) {
socket->write("button one has been pressed");
socket->waitForBytesWritten(1000);
}
else {
    qDebug() << "Something terrible seems to have happened.";
}
}

现在,在我的服务器应用程序中,我尝试了这样的操作。

void MainWindow::newConnection(){
QTcpSocket *socket = server->nextPendingConnection();
socket->waitForReadyRead(1000);
qDebug() << "connection received";
qDebug() << socket->readAll();
socket->close();
}

连接正常,因为会显示"connection received"消息。那么,我应该如何从客户端接收数据呢?QTcpServer没有任何read()函数。

连接正常,因为waitForReadyRead返回'true',或者连接不正常,因为等待ForReadyRead在1000ms后返回false。你怎么知道区别?

更好地与信号异步工作。将套接字连接到"readyRead()"。或者至少测试waitForReadyRead的返回值。

相关文章: