使用QTCP套接字的服务器响应

使用QTCP套接字的服务器响应,qt,qtcpsocket,qtcpserver,Qt,Qtcpsocket,Qtcpserver,我正在将我的代码连接到现有的服务器,并且我能够从服务器获得响应 但问题是响应的内容太大,无法用简单的方式处理 下面是我用来检索数据的一段代码 socket->waitForReadyRead(1000); array = socket->readAll(); for(int i=0; i< array.size();i++){ //qDebug()<< array[i]; test += array[i]; }

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

但问题是响应的内容太大,无法用简单的方式处理

下面是我用来检索数据的一段代码

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];
    }
socket->waitForReadyRead(1000);
数组=套接字->readAll();
对于(int i=0;i//qDebug()waitForReadyRead读取我的for循环。有人能帮我吗?

基本解决方案是:

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

当读取超时或出现错误时(例如插座关闭),循环将退出.

我想不太清楚您想做什么以及问题出在哪里。您知道您希望读取多少数据吗?是的,有很多。想象一下您正在检索一个包含100行15列的表。我必须反复重复上述代码,直到能够检索所有数据。@dunc123不仅如此,我必须让套接字等待每一次,然后再开始读取它。我可以像上面提到的那样检索所有数据,但我想通过将上面的代码放入for循环来简化它。