qt socket下发送和接收图片

永夜之魅 2016-04-09 09:09:35

QDataStream in(socket);
in.setVersion(QDataStream::Qt_5_1);
while(socket->bytesAvailable()>0)
{
if(datasize==0)
{
if(socket->bytesAvailable()<(int)sizeof(quint32))
return ;
in>>datasize;
printf("1:%d\n",datasize );
}
if(socket->bytesAvailable()<datasize)
return ;

// QMessageBox::information(this,"connecfsdfsdt","connsdfafaect success");
QByteArray array = socket->read(datasize);
printf("2:%d\n",datasize );
QBuffer buffer(&array);
buffer.open(QIODevice::ReadOnly);
QImageReader reader(&buffer,"BMP");
QImage image = reader.read();
// QPixmap pm;
//in>>pm;
//pixmap = QPixmap::grabWindow(QApplication::desktop()->winId());
if(!image.isNull())
{
ui->label->setPixmap(QPixmap::fromImage(image).scaled(ui->label->size()) );
ui->label->setText( tr("") );
datasize=0;
}
}
以上是接收

this->pixmap = QPixmap::grabWindow(QApplication::desktop()->winId());
ui->label->setPixmap(this->pixmap.scaled(ui->label->size()));


QBuffer buffer;
buffer.open(QIODevice::ReadWrite);
this->pixmap.save(&buffer,"BMP");


QByteArray array;
QDataStream out(&array,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_1);


/*QBuffer buffer;
buffer.open(QIODevice::ReadWrite);
this->pixmap.save(&buffer,"BMP");

QByteArray dataStr;
QDataStream out(&dataStr,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_1);
out << (quint64) buffer.data().size();
dataStr.append(buffer.data());
client->write(dataStr);
dataStr.resize(0);*/

out<<(quint32)buffer.data().size();
//out<<pixmap;
array.append(buffer.data());
// out<<(quint16)(array.size()-sizeof(quint16));

QTcpSocket *clientConnect = server->nextPendingConnection();

clientConnect->write(array);
array.resize(0);
}
以上是发送


为什么不可以?不知道是哪里出了问题呀
弄了好久
求助各位
...全文
1053 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
草上爬 2016-04-09
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/caoshangpa/9480689 这里有例子,可以参考

16,154

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧