我正在使用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()函数。
答案 0 :(得分:2)
连接没问题,因为waitForReadyRead返回'true',或者连接不正确,因为waitForReadyRead在1000ms后返回false。你怎么知道这个区别?
更好地与信号异步工作。将您的套接字连接到'readyRead()'。或者至少测试waitForReadyRead的返回值。