...(){
forever{
        QDataStream input(&tcpSocket);
        input.setVersion(QDataStream::Qt_4_3);
        
        int num=results->count();
        if (nextBlockSize==0)
        {
            if (tcpSocket.bytesAvailable()<sizeof(quint16))
            {
                stateLabel->setText("Bytes available no enough.");
                searchBut->setInputMethodEnabled(true);
                break;
            }
            stateLabel->setText("Getting data...");
            input>>nextBlockSize;
        }
        if (nextBlockSize==0xFFFF)
        {
            closeConnection();
            searchBut->setEnabled(true);
            stateLabel->setText(tr("Found %1 images").arg(num));
            nextBlockSize=0;
            break;
        }
        if (tcpSocket.bytesAvailable()<nextBlockSize)
        {
            stateLabel->setText("Bytes available no enough.");
            searchBut->setInputMethodEnabled(true);
            nextBlockSize=0;
            break;
        }
        QString response;
        input>>response;
        QIcon icon;
        input>>icon;
        QListWidgetItem *item=new QListWidgetItem();
        item->setText(response);
        item->setIcon(icon);
        
        results->addItem(item);
    
        nextBlockSize=0;
    }
}
BytesAvailable()好像只有8K左右,要传输七八十K的文件。