如果2端都是Qt的话就很简单,用QImage构建图片
比如说有a.png要发送
发送包的结构体可以是:
typedef NETPACKET{
int header; // 自定义的包头 //
int format; // 图片的格式 //
int datasize; //图片数据的长度 //
uchar imageData[];
}netpacket;
然后服务端:
QImage *img = new QImage("a.png");
然后
netpacket *pkt = (netpacket *)malloc(sizeof(netpacket) + img.byteCount());
pkt->header = your_defined_header;
pkt->format = img.format();
pkt->datasize = img.byteCount();
memcpy(pkt->imageData, img.bit(), img.byteCount());
tcpsocket->write((chat *)pkt, sizeof(netpacket) + img.byteCount());
free(pkt);
一个含有图片数据的包就被发出去了。
客户端接收然后组成QImge显示就可以了。
上面的代码差不多就这个意思,也没有仔细去核对函数名字,看下帮助就好了