当前位置: 代码迷 >> QT开发 >> Qt的socket传输图片,大于8K无法显示解决方案
  详细解决方案

Qt的socket传输图片,大于8K无法显示解决方案

热度:497   发布时间:2016-04-25 02:52:37.0
Qt的socket传输图片,大于8K无法显示
代码如下:如何把所有的数据写进文件中? 在BCB中可以利用stream写入,然后pos到0, Qt下有没有类似的办法?
只会用buf,还不能实现大图片(代码有问题不知道如何解决) reader会自动在上一次的后面继续接受写入内容么?
是不是接收一次最大8192,分次该如何完整写入?  刚接触Qt很多不清楚,没找到合适的解决办法,大家帮忙看看。
 if(Client->readBufferSize()==8192)
    {
    QByteArray array=Client->readAll();
    QBuffer buffer(&array);
    buffer.open( QIODevice::ReadOnly );
    QImageReader reader(&buffer, "JPG");
   //QImage image=reader.read();
    //ui->label->setPixmap( QPixmap::fromImage( image ) );

}
    else
    {
        QByteArray array=Client->readAll();
        QBuffer buffer(&array);
        buffer.open( QIODevice::ReadOnly );
        QImageReader reader(&buffer, "JPG");
        QImage image=reader.read();
        ui->label->setPixmap( QPixmap::fromImage( image ) );

    }
}

------解决思路----------------------
这个 明显是 在使用Qt Network 包时候的 基本问题 接收要 分批次,Qt 是有源代码的,你可以看看 examples 下的例子 就好了。

------解决思路----------------------
你是用的udp还是tcp,如果是udp,那么在writeDatagram方法传输数据时,大小限定在8192个字节。
  相关解决方案