服务器响应QTCP套接字

时间:2013-08-09 10:01:55

标签: qt qtcpsocket qtcpserver

我将我的代码连接到现有服务器,我可以从服务器获得响应。

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

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

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-&gt; waitForReadyRead。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:1)

基本解决方案是:

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

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