当前位置: 首页 > news >正文

天水市城市建设投资集团网站怎么开公众号

天水市城市建设投资集团网站,怎么开公众号,做网站要有什么功能,广州建设局Qt多文件传输功能实现前言代码实现概述客户端代码实现服务端代码效果展示结论前言 本次设计主要是为了功能上的实现#xff0c;因此对于ui界面的设计都是怎么简单怎么来的#xff0c;主要的功能就是实现多个文件的发送与接收#xff0c;即客户端发送#xff0c;服务端接收… Qt多文件传输功能实现前言代码实现概述客户端代码实现服务端代码效果展示结论前言 本次设计主要是为了功能上的实现因此对于ui界面的设计都是怎么简单怎么来的主要的功能就是实现多个文件的发送与接收即客户端发送服务端接收保存并且删去客户端的已发送的文件。 代码实现概述 这里就不在概述tcp通信的相关的内容主要围绕本文设计进行叙述 第一就是文件发送的流程图单次文件内容发送主要分为两次首先是文件名可用于服务端建立新的文件其次是文件大小可用服务端判断是否完全接收完最后是文件地址用于服务端删除客户端发送的文件也可以把这认为是简单的协议 第二就是多文件的发送这里用到了QFileDialog类的getOpenFileNames函数(可以固定打开文件的类型)返回QStringList的文件路径集合接下来就是遍历发送。 第三就是防止发生粘包的情况使用QIODevice类waitForBytesWritten函数每次等待数据内容发送。 客户端代码实现 tcpclient.h文件 #ifndef TCPCLIENT_H #define TCPCLIENT_H#include QtWidgets/QMainWindow #include ui_tcpclient.h #include QHostAddress #include QFile #include QTcpSocketclass TcpClient : public QMainWindow {Q_OBJECTpublic:TcpClient(QWidget *parent 0);~TcpClient();void sendData();private:Ui::TcpClientClass ui;int port;QString ip;QTcpSocket *tcpSocket; //服务端连接套接字QFile locFile; //待发送的文件QListQString fileNames;QListQString paths;QListqint64 fileSizes;qint64 sendSize;int sendTime;private slots:void slotSend(); //发送void slotOpen(); //打开文件void sendMessage(); //传输文件void sendData(int); };#endif // TCPCLIENT_Htcpclient.cpp文件 #include tcpclient.h #include QFileDialog #include QtDebug #include QFileInfoTcpClient::TcpClient(QWidget *parent): QMainWindow(parent) {ui.setupUi(this);//初始化port 8081;ip 127.0.0.1;connect(ui.openButton,SIGNAL(clicked()),this,SLOT(slotOpen()));connect(ui.sendButton,SIGNAL(clicked()),this,SLOT(slotSend()));connect(ui.closeButton,SIGNAL(clicked()),this,SLOT(close()));ui.openButton-setEnabled(true);ui.sendButton-setEnabled(false); }TcpClient::~TcpClient() {}void TcpClient::slotOpen() {//初始化数据fileNames.clear();fileSizes.clear();sendTime 0;paths QFileDialog::getOpenFileNames(this,open file); //当前目录下if (!paths.isEmpty()){for (int i 0; i paths.size(); i){locFile.setFileName(paths[i]);if (locFile.open(QIODevice::ReadOnly)){//获取发送文件的信息QFileInfo info(paths[i]);fileNames.append(info.fileName()); //文件名fileSizes.append(info.size()); //文件大小}qDebug()fileName:fileNames[i]fileSize:fileSizes[i]path:paths[i];}}ui.sendButton-setEnabled(true); }void TcpClient::slotSend() {//创建连接服务器tcpSocket new QTcpSocket(this);tcpSocket-connectToHost(ip,port); //连接服务器并发出connected()信号connect(tcpSocket,SIGNAL(connected()),this,SLOT(sendMessage())); //传输文件槽函数 }void TcpClient::sendMessage() {qDebug()link successful;ui.sendButton-setEnabled(false);//先发送头自定义组包, 文件名#文件大小不是文件数据locFile.setFileName(paths[sendTime]);locFile.open(QIODevice::ReadOnly);QString head QString(head#%1#%2#%3).arg(fileNames[sendTime]).arg(fileSizes[sendTime]).arg(paths[sendTime]);qDebug()head:headendlhead.size();//发送头qint64 len tcpSocket-write(head.toUtf8().data());tcpSocket-waitForBytesWritten(); //等待数据内容发送if (len 0){sendData(sendTime); //发送内容数据} }void TcpClient::sendData(int i) {QByteArray buf locFile.readAll();qint64 len tcpSocket-write(buf);tcpSocket-waitForBytesWritten(); //等待数据内容发送sendSize len;qDebug()sendSize:sendSize;if (sendSize fileSizes[i]){qDebug()send successful;locFile.close();tcpSocket-close();}if (i paths.size()-1){slotSend();sendTime;} }服务端代码 因为服务端的代码也比较简单这里就不展示了。 效果展示 因为只是简单的功能设计因此没有直观的展示主要是客户端的发送截图以及服务端对接收二进制文件内容的打印。 客户端界面 服务端控制台打印文件内容 结论 本次设计对单次文件传输是没什么问题的主要的多文件传输时的粘包现象本次设计经过验证对于多个小文件传输是没问题的但是不排除大量的大文件不会出现问题。因此就需要一个更好更稳定的协议来保证这次只是简单使用了等待传输的函数后面我也会进一步进行更好的封包与解包的通信操作。见TCP解决粘包问题结构数据封包拆包
http://www.huolong8.cn/news/324485/

相关文章:

  • 曲阜市古建设计院网站抖音小程序定制
  • 苏州建站模板平台天津建设银行官方网站
  • 吉安公司做网站安徽建设工程有限公司官网
  • 网站开发毕业设计代做网站引擎友好性分析
  • 畜牧业网站建设有哪些设计公司
  • 做定制商品的网站永康电子商务网站建设公司
  • 网站的seo 如何优化wordpress 拼音别名
  • 能下载的网站郑州专业做网站
  • 关键词挖掘工具网站建设银行网站首页是多少
  • 郑州大学网页设计与网站建设可以做直播的游戏视频网站
  • 房地产网站制作公司电子商务网站建设的意义是什么意思
  • 自己怎样开网站将wordpress安装到哪个数据库?
  • 做网站推广电话伊犁州建设局网站
  • 风格 特别的网站收集网络营销方案
  • discuz 网站搬家如何将自己做的网站发布
  • 平面设计案例网站推荐郑州官网seo厂家
  • 做片视频在线观看网站西安的商城网站
  • 海阳网网站网站优化 h几 更易被抓
  • 童装网站建设勒索做钓鱼网站的人
  • 一个空间可以绑定几个网站wordpress播放百度云
  • 做电信宽带合适做网站吗管理咨询公司信息
  • 建设银行扬中网站做折线图网站
  • 商城微信网站开发seo谷歌
  • 怎么套模板 网站直播型网站开发
  • vs2012建设网站网站建设布吉
  • 营销型网站模板展示班级博客网站模板
  • 网站营销咨询顾问制作英文网站
  • 网站建设座谈会上的发言手机网站优化排名首页
  • 好制作网站公司三只松鼠商务网站建设目的
  • 茌平网站建设我的电脑做网站服务器