- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 提高应用程序稳定的小内容
用于提高应用程序稳定的小小要点要点内容:要点内容:动态内存分配完后(new),注意一个使用完的内存要对应一个delete。当用QByteArray等数组结构来存储缓存时,缓存被读取后注意要清空对应长度的数组内容。当取数时,需加判断当前(对象、指针、数组)是否可能为NULL,以免造成空指针或越界问题。变量初始化,包括指针变量初始化为NULL、数组初始化为零等,其中全局变量会默认初始化。除法运算时,需加判断是否除数可能为0。使用UDP网络通信时,要注意在程序退出时,利用析构函数释放绑定的端口号。
2021-06-26 14:38:16 175
原创 C++ reverse memcpy
C++ reverse memcpy前言基于QT的测试样例结果前言C++ 实现翻转memcpy基于QT的测试样例代码如下:#include <iostream>#include <QtCore/QCoreApplication>#include <QDebug>using namespace std;void *reversememcpy(void *out, const void *in, int char_num);int main(int
2021-05-09 10:16:05 334
原创 强制类型转换的取整及四舍五入取整
强制类型转换取整相关前言取整方法(signed int)double前言开发中一般运算过程都采用浮点类型数据以免出现运算不精确的错误,而当运算结果需要时整型的时候就需要对浮点类型的结果进行取整处理,而取整的方法有向上取整,向下取整,以及熟悉的四舍五入取整,下面就介绍强制类型转换取整的内容。取整方法向上取整:比自己大的最小整数;向下取整:比自己小的最大整数;四舍五入:更接近自己的整数。(signed int)double下面以(signed int)double为例,研究强制类型转换如何进行取
2020-09-20 16:04:19 8439 2
原创 拆包--缓冲区查找包头及包尾偏移
缓冲区查找包头及包尾偏移前言一、采用动态数组QByteArray的自带函数二、采用字节对比方法测试代码前言根据前面所讲的内容,当将网络中的数据读出存储在自定义缓冲区QByteArray中,则对数据包进行拆分。则首先要进行的工作就是找到包头的位置及包尾的位置,来判断该包是否完整,下面就来讲两种方法来查找其偏移地址。一、采用动态数组QByteArray的自带函数该方法主要就是采用QByteArray的indexOf(const QByteArray &, int)函数,buf表示缓冲区数据,da
2020-09-08 21:52:59 1884
原创 TCP解决粘包问题(结构数据封包拆包)
TCP封包解包前言封包一、包结构二、封包方法解包总结前言TCP协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的通信协议,即TCP采用字节流的方式,以字节为单位传输字节序列。如果简单的发送长串的数据流,那么我们接收到的就是一串无规则的字节流,即不知道哪里开始读,到哪里截止,那么就会出现丢包、粘包现象。如果要让这无规则的字节流有规则,那么就需要我们去定义一个规则,那便是所谓的“封包规则”,相对应的就是“解包规则”。封包一、包结构简单来说就是给每
2020-09-06 11:08:08 990 1
原创 封包时发现的关于QIODevice类write函数的坑
关于QIODevice类write函数的坑问题概述问题部分代码问题解决结论问题概述这两天在做TCP通信的封包解包协议操作时,被不经意间被write函数坑了好久。通过内存复制进行数据封包,在写入socket的时候总是写入一个字节,不能全部写入数据,原先以为是内存复制出了问题,没想到最后是出在了write函数的使用上。问题部分代码 //包头结构与包尾结构的初始化 HEAD head; TAIL tail; head.dataHead = PACK_HEAD; head.dataType = PA
2020-08-19 22:33:45 2301
原创 基于结构体的二进制文件读写
基于结构体的二进制文件读写项目介绍工程创建结构体的创建写二进制文件结果读二进制文件结果参考文献项目介绍本次设计是为了提高读写二进制文件的效率,以约定的结构体形式进行读写操作,避免了一个字节一个字节的多次写入读取操作,并且能以特定的结构读取到二进制数据流的文件,即以某种特定的协议进行读写操作。工程创建本次是对读写的操作的认识,则创建的工程为控制台应用。结构体的创建分别以short、int、long long类型数据进行连续数据100次的顺序写入#pragma pack(1) //字节对齐
2020-08-16 14:49:26 2109
原创 VS集成Qt开发入门(简易时间显示)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-08-16 14:15:16 661
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人