使用Qt将一系列图片通过网络发送到客户端动态显示.docx
文本预览下载声明
使用Qt将一系列图片通过网络发送到客户端动态显示实现功能:循环读取服务器端上的10张图片并通过网络发送到客户端,客户端实现动态显示。代码如下:服务器端-----------》[cpp]?view plaincopy/*************ServerMain.cpp***************/????#include?ServerStream.h??#include?QtGui/QApplication??????int?main(int?argc,char?*argv[])??{?????QApplication?a(argc,argv);?????ServerStream?stream;?????return?a.exec();??}??[cpp]?view plaincopy/**************ServerStream.h***************/????#ifndef?IMAGESERVER_H_??#define?IMAGESERVER_H_????#include?iostream??#include?QtNetwork/QHostAddress????#include?QtNetwork/QTcpSocket??#include?QtNetwork/QTcpServer??#include?QtGui/QImage??#include?QtCore/QThread??#include?QtGui/QWidget????????class?ServerStream?:?public?QObject?{?????Q_OBJECT?????private:????????QTcpServer?server;????????QTcpSocket?*socket;???//socket对象????????void?initNetWork();????????void?delay(int?len);?????public:????????ServerStream(QObject?*parent=0);????????~ServerStream();????????QByteArray?formHead(QByteArray?by);?????public?slots:????????void?dealConnection();??};????#endif??[cpp]?view plaincopy/****************ServerStream.cpp*****************/????#include?ServerStream.h??#include?string??#include?QtCore/QFile??#include?QtCore/QThread??????ServerStream::ServerStream(QObject?*parent)?:?QObject(parent)??{??????initNetWork();??????connect(server,SIGNAL(newConnection()),this,SLOT(dealConnection()));??}????ServerStream::~ServerStream(){??????}??????//初始化网络??void?ServerStream::initNetWork(){??????std::coutiniting?network...std::endl;??????server.setParent(this);??????server.listen(QHostAddress::Any,8867);???????std::coutnetwork?inited!std::endl;??}????//当有连接时,将图片发送过去??void?ServerStream::dealConnection(){??????int?num=0;??????long?len=0;??????socket=server.nextPendingConnection();???????for(num=1;num=10;num++){??????????QFile?file(/images/+QString::number(num)+.jpg);??????????file.open(QIODevice::ReadOnly);???//在Qt中,文件需要打开了才能进行操作,这点与java不同??????????QByteArray?by;??????????by=file.readAll();??????????len=by.length();????//获取数据的总长度??????????by.prepend(for
显示全部