0

我正在将我的代码连接到现有服务器,并且能够从服务器获得响应。

但问题是响应的内容太大而无法以简单的方式处理。

现在下面是我用它来检索数据的一段代码。

socket->waitForReadyRead(1000);
    array = socket->readAll();
    for(int i=0; i< array.size();i++){
        //qDebug()<< array[i];
        test += array[i];
    }

    qDebug()<< "cmd Part 2: ";
    socket->waitForReadyRead(1000);
    array = socket->readAll();
    for(int i=0; i< array.size();i++){
        //qDebug()<< array[i];
        test += array[i];
    }

我在使用 for 循环简化上述代码时遇到问题。

我不知道如何在我的 for 循环中实现 socket->waitForReadyRead。谁能帮我解决这个问题?

4

1 回答 1

1

一个基本的解决方案是:

while (socket->waitForReadyRead(1000))
{
    QByteArray array = socket->readAll();
    // do stuff
}

当读取超时或出现错误(例如套接字关闭)时,循环将退出。

于 2013-08-09T10:16:31.187 回答