自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 git 如何撤回已push的代码

在日常的开发中,我们经常使用Git来进行版本控制。有时候,我们可能会不小心将错误的代码 Push 到远程仓库,或者想要在本地回退到之前的某个版本重新开发。或者像我一样,写了一些感觉以后很有用的优化方案push到线上,又接到了一个新的需求。但是呢,项目比较重要,没有经过测试的方案不能轻易上线,为了承接需求只能先把push上去的优化方案先下掉。现在我的分支是这样的,我想要在本地和远程仓库中都恢复到的部分。

2024-03-11 17:27:48 512 1

原创 MQTT 入门介绍

每一个会话中的每个订阅都有一个不同的主题筛选器。用来在保证消息的可靠传输,如果设置为1,则在下面的变长中增加MessageId,并且需要回复确认,以保证消息传输完成,但不能用于检测消息重复发送。这就是为什么在介绍里说它非常适合"在物联网领域,传感器与服务器的通信,信息的收集",要知道嵌入式设备的运算能力和带宽都相对薄弱,使用这种协议来传递消息再适合不过了。(3)RETAIN: 发布保留标识,表示服务器要保留这次推送的信息,如果有新的订阅者出现,就把这消息推送给它,如果设有那么推送至当前订阅者后释放。

2024-02-21 08:37:29 807

转载 System V、BSD、Posix

在1983年第一次发布,一共发行了4个System V的主要版本,System V Release4,或者称为SVR4,是最成功的版本,该版本有些风格成为一些UNIX共同特性的源头,如下表格的初始化脚本/etc/init.d。在操作风格上主要分为System V和BSD(目前一般采用BSD的第4个版本SVR4),前者的代表的操作系统有Solaris操作系统,在Solaris1.X之前,Solaris采用的是BSD风格,2.x之后才投奔System V阵营。后者的代表的操作系统有FreeBSD。

2024-02-15 17:24:43 32

原创 C语言:内存分配---栈区、堆区、全局区、常量区和代码区

栈区由编译器自动分配释放,由操作系统自动管理,无须手动管理。栈区上的内容只在函数范围内存在,当函数运行结束,这些内容也会自动被销毁。栈区按内存地址由高到低方向生长,其最大大小由编译时确定,速度快,但自由性差,最大空间不大。栈区是先进后出原则,即先进去的被堵在屋里的最里面,后进去的在门口,释放的时候门口的先出去。堆区由程序员分配内存和释放。堆区按内存地址由低到高方向生长,其大小由系统内存/虚拟内存上限决定,速度较慢,但自由性大,可用空间大。

2024-02-15 15:51:33 1072

原创 【C++】智能指针

每次多一个shared_ptr对资源进行管理,引用计数+1,每个指向该对象的shared_ptr对象销毁时,引用计数-1.最后一个shared_ptr对象销毁时,计数清零,资源对象销毁。作为auto_ptr的改进,unique_ptr堆其他持有的资源对象具有唯一的控制权,即不可以通过常规的复制语法转移或者拷贝资源对象的控制权。通过weak_ptr的构造函数,参数传入一个持有资源对象的shared_ptr对象或weak_ptr对象,即可创建.使用智能指针可以让堆内存对象具有栈内存对象的特性。

2024-01-31 09:32:11 327

原创 【C++】STL 总结

学习目标:vector中存放自定义数据类型,并打印输出放对象放对象指针//自定义数据类型public:mAge = age;//存放对象//创建数据it!= v.end();it++) {//放对象指针//创建数据it!= v.end();test02();return 0;写一个函数show_array,要求传入两个参数。

2024-01-30 15:54:40 719 1

原创 【C++】-抽象类

● 派生类继承抽象类,没有把抽象类中所有的纯虚函数覆盖并实现,此时派生类也变为抽象类。等待他的派生类覆盖并实现剩余的纯虚函数。● 派生类继承抽象类,覆盖并实现所有的纯虚函数,此时派生类可以作为普通类使用,即不再是抽象类。如果基类只想表达一些抽象的概念,并不与实际的对象相关联,这时候就可以使用抽象类。不能直接使用抽象类作为声明类型,不存在抽象类类型的对象。纯虚函数也是虚函数的一种,这种函数只有声明,没有定义。,因此在一个继承体系中,抽象类的内容相对丰富且重要。● 抽象类支持多态,可以存在抽象类的指针或引用。

2024-01-30 15:53:26 27 1

原创 【C++】-多态

多态函数覆盖函数覆盖与函数隐藏比较相似,但是函数隐藏不支持多态。函数覆盖是多态的必要条件。在编写方式上,函数覆盖比函数隐藏有以下几点区别:● 被覆盖的函数必须是虚函数● 在C++11中,可以在派生类的新覆盖的函数上使用overide关键字验证覆盖是否成功。一个函数使用virtual关键字修饰,就是虚函数,虚函数是函数覆盖的前提。在Qt Creator中虚函数的函数名称使用斜体字。虚函数具有以下性质:● 虚函数具有传递性,基类被覆盖的函数是虚函数,派生类中新覆盖的函数也是虚函数

2024-01-27 16:26:05 25 1

原创 error: file not recognized: File truncated 30秒解决报错

打开编译产生的中间文件目录,选择大小排序,最小文件在前,删除这个0KB的.o文件。查找链接库目录下的xxx.o。将大小为0的文件删除。

2024-01-27 08:56:48 434 1

原创 ChatGPT 和文心一言哪个更好用?

因此,如果需要一个功能丰富、能够处理多种任务的AI助手,文心一言可能更适合。如果需要一个能够快速回答问题、提供创意和知识支持的AI伙伴,ChatGPT可能更有优势。

2024-01-26 09:11:46 594 1

原创 【C++】this指针

在类的普通成员函数中返回对象本身(*this)(重要)‘(静态成员函数 是属于类 函数内部 没有this指针)每个对象 拥有独立的数据.每个对象 共享同一个方法。c++的封装性:将数据 和 方法 封装在一起。指针即可知道操作的是那个对象的数据。数据 和 方法 是分开存储。

2024-01-26 08:42:16 165 1

原创 【C++】const关键字

C++

2024-01-25 11:40:23 359

原创 【服务器搭建】幻兽帕鲁Palworld私服搭建保姆级教学

幻兽帕鲁Palworld私服搭建教学

2024-01-25 11:03:10 1736

原创 【QT5.4】Qt编译运行提示No rule to make target ‘xxx‘ needed by ‘xxx‘

5、按ctrl + r 重新编译,如无意外,此时可以正常编译。3、按ctrl + r 重新编译,提示出错,不用管。2、把SOURCES += main.cpp\。下的所有文件剪切掉。4、把刚剪切的内容,粘贴回原来的地方。1、打开工程的pro文件。

2024-01-25 10:39:58 737

原创 【C++】运算符重载

简化操作 让已有的运算符 适应适应不同的数据类型。C++中可以把部分运算符看做成函数,此时运算符也可以重载。运算符预定义的操作只能针对基本数据类型,但是对于自定义类型,也需要类似的运算操作,此时就可以重新定义这些运算符的功能,使其支持特定类型,完成特定的操作。语法:函数的名字由关键字operator及其紧跟的运算符组成比如:重载+运算符 ==>operator+ 重载=号运算 ==>operator=注意:重载运算符 不要更改 运算符的本质操作(+是数据的相加 不要重载成相减)

2024-01-22 09:04:57 715

原创 【C++】-C++基础

C++基础

2024-01-19 13:45:22 825 1

原创 网络编程-广播组播

广播地址: 主机号最大的地址;以192.168.1.0 (255.255.255.0) 网段为例,最大的主机地址192.168.1.255代表该网段的广播地址● 前面介绍的数据包发送方式只有一个接受方,称为单播● 如果同时发给局域网中的所有主机,称为广播同一局域网内的主机都会接收到,如果其他主机没有加入广播站,就会将消息丢弃。

2024-01-12 08:35:44 840 1

原创 网络编程-服务器模型

多进程:优点: 服务器更稳定 , 父子进程资源独立, 安全性高一点缺点: 需要开辟多个进程,大量消耗资源多线程:优点: 相对多进程, 资源开销小, 线程共享同一个进程的资源缺点: 需要开辟多个线程,而且线程安全性较差IO多路复用:优点: 节省资源, 减小系统开销,性能高;缺点: 代码复杂性高。

2024-01-11 08:42:52 360 1

原创 网络编程-Linux下四种模型及本地套接字

特点selectpollepoll适用范围适用于小规模连接适用于中等规模连接适用于大规模连接效率效率相对较低,时间复杂度高效率相对较低,时间复杂度高效率高 时间复杂度小可用性跨平台支持,但性能较差跨平台支持,性能相对select更好仅限于Linux系统同步/异步同步,阻塞等待事件发生异步,事件通知水平触发(默认),需要循环处理所有事件边缘触发,仅在状态变化时通知思维导图。

2024-01-10 09:03:22 957

原创 网络编程-TCP、UDP编程

/1.创建套接字 >> 返回一个建立连接的文件描述符//3//2. 填充结构体//bind绑定ip和端口return -1;//3. listen 监听return -1;//4. 阻塞 等待客户端连接 -> 返回一个同于通信的文件描述符return -1;while(1){ //recv接收客户端发送的内容if(recvbyte < 0) //函数出错return -1;else if(recvbyte == 0) //表示客户端退出。

2024-01-09 08:48:09 404

原创 网络编程-TCP、UDP、套接字

发展:1》1982 - Berkeley Sotware Distributions 操作系统引入了socket作为本地进程之间通信的接口2》1986 - Berkeley 扩展了socket 接口,使之支持UNIX 下的TCP/IP 通信3》现在很多应用 (FTP, Telnet) 都依赖这一接口。

2024-01-09 08:46:31 745

原创 网络编程-抓包分析

(数据的封包传输中,既需要知道对方IP,也需要知道MAC)3、要发送的数据小于TCP发送缓冲区的大小,TCP将多次写入缓冲区的数据一次发送出去,将会发生粘包。3、可以在数据包之间设置边界,如添加特殊符号,这样,接收端通过这个边界就可以将不同的数据包拆分开。1、发送端给每个数据包添加包首部,首部中应该至少包含数据包的长度,这样接收端在接收到数据后,RARP: RARP协议则是与ARP相反的过程,它用于将MAC地址解析为IP地址。通过读取包首部的长度字段,便知道每一个数据包的实际长度了。

2024-01-08 10:14:19 343

原创 网络编程-网络模型

确保一个系统应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解 析,管理数据加密,解密;1.网络采用分而治之的方法设计,将网络的功能划分为不同的模块。传输的是bit流(0与1一样的数据),物理信号,没有格式。:路由器中是有算法的,ip,(主机到主机)(路由的转发):决定数据交给机器的哪个任务(进程)去处理,通过端口寻址。:指定特定应用的协议,文件传输,文件管理,电子邮件等。:格式变为帧(把数据分成包,一帧一帧的数据进行发送)SMTP/POP3:邮件传输协议 ---邮件传输。

2024-01-08 10:12:51 334

原创 网络编程-认识网络

了解认识网络 网络编程基础

2024-01-07 20:57:23 920 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除