C++
文章平均质量分 72
qq_21291397
这个作者很懒,什么都没留下…
展开
-
IMEI 码的校验和生成
IMEI 码的校验和生成文章目录IMEI 码的校验和生成IMEI 码Luhn算法代码实现CIMEI 码IMEI 码,即手机的串号。它是 International Mobile Equipment Identity( 国际移动设备身份) 的简称,就像是手机的身份证,是用来帮助辨别手机身份真伪的。 第一部分 TAC,Type Allocation Code,类型分配码,由8位数字组成(早期是6位), 是区分手机品牌和型号的编码,该代码由GSMA及其授权机构分配。其中TAC码前两位又是分配机构标识 (原创 2021-11-08 09:43:35 · 3659 阅读 · 0 评论 -
Socket连接心跳包的机制总结
文章目录Socket连接心跳包的机制总结心跳包的由来心跳包的作用心跳包由服务端还是客户端发送?Socket连接心跳包的机制总结心跳包的由来心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线原创 2020-11-26 14:40:52 · 1357 阅读 · 0 评论 -
Qt 实现数据协议控制--组帧、组包、解析帧、解析包
数据传输中的组帧和组包一、数据帧,数据包的概念数据帧组包二、 程序实现:2.1、frame(帧)类的实现:2.2、Pack(包)类的实现:三、测试一、数据帧,数据包的概念数据帧数据传输往往都有一定的协议,通过CRC校验来验证数据的可靠性。数据帧包含三部分,帧头、数据部分、帧尾。其中帧头和帧尾包含一些必要的控制信息,比如同步信息,地址信息、差错控制信息等等。组包多个数据帧可以捆在一起,添加包头信息,就可以组包。组包可以使得多帧的数据同时发送,提高通信的效率。数据的帧包可以提高数据传输的可靠性。下原创 2020-11-12 14:08:06 · 13842 阅读 · 3 评论 -
C# 调用C++写的dll的实现方法
文章目录**C# 调用C++写的dll的实现方法**C# 调用C++写的dll的实现方法C#调用C++的非托管类的dll其实很简单基本就是固定的调用格式。一、 dll的编写1、首先是打开VS新建一个C++的控制台程序,下一步后选择dll以及空文档即可。2、然后就是添加一个类添加一个方法。方法排头固定格式 extern"C"__declspec(dllexport) 后面加方法即可。 例如如下代码:extern"C"__declspec(dllexport) char* ShowImages(B原创 2020-10-28 16:36:50 · 317 阅读 · 0 评论 -
VS C++生成dll和静态调用dll的方法
一、动态链接库(dll)概述在实际编程中,我们可以把完成某项功能的函数放在一个动态链接库里,然后提供给其他程序调用。1.1 静态库和动态库静态库:函数和数据被编译进一个二进制文件(扩展名通常为.lib),在使用静态库的情况下,在编译链接可执行文件时,链接器从静态库中复制这些函数和数据,并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.exe)。当发布产品时,只需要发布这个可执行文件,并不需要发布被使用的静态库。动态库:在使用动态库时,往往提供两个文件:一个引入库(.lib,非必须)和一原创 2020-10-28 16:20:18 · 2295 阅读 · 1 评论 -
C#、C++、JAVA中虚函数和抽象函数的概念对比
这两天恶补了下C#的相关内容,虚函数的概念又挖掘了下,总结如下:1、C++中函数被定义为虚函数的方法是在函数名前加virtual,虚函数可以有自己的具体内容,也可以不含有函数实现内容,称为纯虚函数。这里未指明为纯虚函数的函数均默认为非纯虚函数。纯虚函数的表示形式为virtual int getNum()=0;后面加"==0"表示函数无实现内容。含有虚函数的类可以实例化,可当作普通类来使用,但含有纯虚函数的类只能被继承后才能使用,且子类中必须实现父类的纯虚函数,这种情况下父类称为抽象类。2、java中没有原创 2020-10-19 15:37:19 · 290 阅读 · 0 评论 -
c#和c++中枚举类型的区别(简)
c#和c++中枚举类型的区别(简)C++中枚举类型中的每个元素,可以直接使用,不必通过类型.元素的方式调用没有++操作#include <iostream> using namespace std; enum week{Monday,Thuesday}; int main() { week day; day = Monday; day = Thuesday; //day = 4; 报错 类型转化出错 //day++; 出错,原创 2020-10-19 09:57:56 · 396 阅读 · 0 评论 -
C++ VS C# 结构体和对象的细微区别
C++ VS C# 结构体和对象的细微区别类与结构体在C++与C#中都是可以使用的,但是两者在两种语言中的区别却很大,今天在这里进行一下记录。在C++中,类与结构体的唯一区别就是默认访问权限的区别。在struct中,默认的访问权限为public,而在类中,默认的访问权限为private。举例一段代码,这样更容易理解:class MyClass { //无显式的访问修饰符,默认为private int Value; }; MyStruct myStruct;原创 2020-10-19 09:51:45 · 424 阅读 · 0 评论 -
关于c++静态类的说法
关于C++的静态类和C#中的静态类的比较在C++中,类不能有static修饰,**C++静态类是指只用于包含静态成员的类型,不能进行实例化。**当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是共享的。我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化。静态函数只要使用类名加范围解析运算符 :: 就可以访问。静态成员函数只能访问静态成员数据、其他静态成员函数和类原创 2020-10-19 09:22:31 · 2175 阅读 · 0 评论