0

我正在使用 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();
}

连接没问题,因为出现了“已收到连接”消息。那么,我应该如何从客户端接收数据?QTcpServer 没有任何 read() 函数。

4

1 回答 1

2

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

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

于 2013-08-29T17:24:46.340 回答