c++
文章平均质量分 63
月下独奏
这个作者很懒,什么都没留下…
展开
-
QT使用GZip进行数据压缩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、编译zlib库1.下载zlib2.编译二、QT导入1.引入库2.导入zlib头文件3.QT使用zlib进行Gzip解压缩代码总结前言之前使用QT进行TCP传输数据,如果碰到大文件的传输会导致传输数据巨大。由于通信格式使用json,其不支持二进制数据的传输,所以要将二进制数据转换为base64进行传输,这样数据量会增加30%左右,因此现在将json格式后的数据使用Gzip进行压缩,节省大量流量一、编译zlib库1.原创 2021-02-16 21:17:06 · 2574 阅读 · 0 评论 -
蜂鸟速递-无人机快递智能系统 QT编写(含视频)
大三工作室项目,和几位小伙伴一起做出来的。我负责客户端与服务器这块,其他小伙伴负责无人机安卓端、用户安卓端,项目实现了类似于滴滴打车的效果,写篇博客记录一下。 系统流程如下:用户下单,系统分配无人机飞至指定地点降落,用户将物品放入储存箱确认后无人机飞向目的地,无人机到达目的地后有两种确认方式。 方式1:二维码确认,将1m*1m大小的二维码铺在地上,无人机在目的地上空进行圆周运动,当...原创 2018-03-07 15:43:19 · 3480 阅读 · 6 评论 -
Mac QT5.11 C++ 使用Protobuf
最近在弄一个游戏后台,服务之间使用protobuf进行通信,但模拟客户端使用json与网关通信,为了统一格式模拟客户端使用protobuf。当然C++使用Protobuf比较麻烦,需要自行编译源码然后加入到项目中。 第一步,从github下载最新protobuf源码进行编译,地址:https://github.com/google/protobuf 下载后 ...原创 2018-08-16 00:28:29 · 934 阅读 · 0 评论 -
分布式计算框架(一)介绍
大学时光飞逝,转眼就到大四。毕业设计作为在大学编写的最后一个程序必须精益求精。在刚开始选题时,我并没有想写分布式计算框架,只是想试试N皇后算法如何分布式计算,结果随着版本的迭代变成了分布式计算框架。一、综述 随着大数据时代的来临,现有计算方式已不能满足工作需求,并且CPU近几年往多核方面发展,单台电脑性能有限不足以完成复杂计算任务。分布式计算框架能很好的解决此类需要巨大计算量问题,分...原创 2018-05-24 23:53:58 · 16510 阅读 · 4 评论 -
分布式计算框架(五) 计算模块与动态链接库模板
五、计算模块与动态链接库模板 5.1、 计算模块结构 计算模块主要负责任务的计算,根据任务的信息动态调用相应的动态链接库以及函数,计算完毕后传输计算结果,计算模块类关系表如下: 类名 关系类 关系 Handle_module Setting 聚合...原创 2018-06-04 17:56:03 · 577 阅读 · 0 评论 -
分布式计算框架(四) 计算节点模块
四、计算节点模块 4.1 计算节点模块结构 计算节点模块主要功能为数据管理、日志管理、配置管理、处理线程管理、进程通信管理、TCP通信管理。计算节点模块类关系表如下:类名关系类 关系Managementhandle_manage聚合handle_manageHandle聚合ManagementLog聚合ManagementSetting聚合Managementtcp_Sock...原创 2018-06-04 17:31:07 · 6356 阅读 · 0 评论 -
分布式计算框架(二)服务器模块
二、服务器模块2.1 服务器模块结构服务器模块为整个系统的核心组成部分,负责数据的处理、任务的分发负载均衡等。由于功能数量较多,因此定义一个管理类统一管理,对外只暴露简单的接口方便调用,该模块由以下几个类组成。Management:管理类,负责管理所有模块。名称类型说明mysql_set方法设置数据库信息tcpServer_init方法初始化tcp服务器localServer_init方法初始化l...原创 2018-05-25 19:09:47 · 2084 阅读 · 3 评论 -
QT Go TCP数据传输粘包问题
使用Go语言为服务器,QT作为客户端,利用TCP进行数据传输,当两次发送间隔过近会产生粘包现象,此时就需要一个特定的数据格式用来区分两个数据的边界,我使用 特征码(int类型用来区分是否恶意)数据包大小(int)压缩标志(bool)数据(byte),但当交互时发生问题,比如QT的自定义数据格式QBytearry会在最前面加个字段用来表示自身整体大小。下面直接列出代码:GO:func IntToBy...原创 2018-04-27 13:08:11 · 644 阅读 · 0 评论 -
QT 调用DLL出问题解决方案汇总
由于毕设工程较大需要传输DLL至计算节点并调用DLL进行计算,之间遇到许多坑,现来总结一下。1.QT显示调用DLL,也就是说exe程序直接调用DLL无需在程序中引入lib之类的。之前尝试许多种,只有这种灵活性最大!typedef QStringList(*FUN1)(QString); QLibrary lib(dll_Name); if(lib.load())原创 2018-01-12 22:43:56 · 5394 阅读 · 0 评论 -
c++ char与二进制互转
char 转换到二进制以字符串形式显示 如 char d=65; 显示为A 转换后成字符串 01000001inline string change(char c){ string data; for(int i=0;i8;i++) { // data+=c&(0x01 if ( ( c >>(i-1原创 2017-08-10 10:37:43 · 19397 阅读 · 0 评论