自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 问答 (1)
  • 收藏
  • 关注

原创 ICMPv6报文解析及NAT处理

参考和ICMPv6报文是IPv6在internal control management protocol(ICMP)的基础之上做了一些改动,得到了ICMPv6协议,IPv6的为58。

2024-01-30 17:42:38 1222

原创 Linux内核进程管理

进程是处于执行期的程序和他所占用资源的总称。进程就是运行的代码,进程的声明从代码开始运行那一刻开始;单纯的程序并非是是一个进程,一个程序也可能不只包含一个进程。

2024-01-28 21:25:42 288

原创 Chrony时间同步程序

Chrony简介初识ntpntp报文详解ntp的工作原理深入聊一聊chrony欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入MarkdownText-to-HTMLAuthorsJohnLuke。

2024-01-26 01:12:20 657

原创 LINUX内核源码:基础知识1

在Unix系统中,多个并发进程负责不同的任务。每个进程都需要系统资源,可能是CPU、内存、网络连接或其他资源。内核是一大块负责处理所有系统资源的可执行代码。虽然不同内核任务之间的区别并不总是很明显,但是内核的角色可以被划分(如图1-1所示)为以下几个部分:进程管理内核负责创建和销毁进程,并处理它们与外部世界的连接(输入和输出)。不同进程之间的通信(通过信号、管道或进程间通信原语)是整个系统功能的基础,也由内核处理。此外,调度程序是进程管理的一部分,它控制进程如何共享CPU。

2024-01-25 17:17:24 832

原创 执行ping命令时提示ping: sendmsg: Operation not permitted

RELATED,表示分组要发起一个新的连接,但是这个连接和一个现有的连接有关,例如:FTP的数据传输连接 和控制连接之间就是RELATED关系。这个ESTABLISHED连接再产生一 个主连接之外的连接,这个新的连接就是RELATED的了,当然前提是conntrack模块要能理解RELATED。或者更隐蔽点,研究了计算 conntrack hash 值的算法后,构造很多 hash 一致的不同五元组的数据包,让大量记录堆在同一个桶里,使得遍历超长的冲突链表的开销大得难以接受。如果没有匹配的则新建。

2024-01-25 16:01:41 1297

原创 关于ntp时间源的优先级问题

NTP服务,理论上可以精确到纳秒,但是实际的精确程度根据操作系统和设备而不同。NTP守护进程不仅可以调整自己计算机的系统时间。作为客户端,它从一个或多个服务器查询参考时间。作为服务器,它将自己的时间作为其他客户机的参考时间。作为对等体,它将自己的系统时间与其他对等体进行比较,直到所有对等体最终同意要同步的“真实”时间。这些特性可用于建立分层时间同步结构。时间同步结构的层次结构称为层状结构。层数越小,在层次结构中级别就越高。

2023-10-18 22:45:05 331

原创 NTP时间同步协议

NTP时间源是一个提供准确时间的服务器或设备,它通过NTP协议向其他设备提供时间同步服务。NTP时间源可以是原子钟、GPS接收器、其他NTP服务器或互联网上的公共NTP服务器。

2023-10-17 09:41:41 165

原创 数据包的处理流程

1.启动应用程序新建邮件,将收件人邮箱和邮件内容填写好,应用程序进行编码处理。(应用层)2.应用在发送邮件那一刻建立TCP连接(三次握手),将数据交给传输层。第一次握手:建立连接时,主机A向主机A发送请求报文第二次握手:主机B收到请求报文后,如同意连接,则向主机A发送确认报文第三次握手,主机A收到主机B的确认后,再次向主机B给出确认报文,完成连接。

2023-08-30 12:49:37 609

原创 NTP相关问题

文章解答了一些常见的NTP问题

2023-08-25 15:27:04 184

原创 IPv4,IPv6,TCP,路由

一点关于ipv4、IPv6、路由、ICMP的学习总结

2023-08-21 10:15:01 4574

原创 Qt界面设计——添加工具栏、菜单栏 和 单窗口实现多页面切换问题

本实例最外层是一个分割窗体,上层是QFrame,内部有两个按钮DICOMData和DICOMImage,下层是一个QStackWidget,stack默认有两个页面,想要在添加可鼠标右键,单键添加按钮。

2023-05-27 00:14:10 6113

原创 数字图像处理

一般的数字射线图像使用的图像文件如下图所示,大体有文件头和图像数据两部分构成。文件头不仅包含了图像大小及灰度相关信息,还记录了患者姓名、ID、拍摄日期。拍摄部位等与文件内容相关的信息。因此文件头上记录的内容是文字及数值信息,文字以文本的形式表示,数值则以二进制形式表示。另一方面图像数据部份,把二维图像的各个像素的值(像素值)以一维排列的形式保存。这种二维数据以一维形式保存的方式,与电视机的扫描模式相同,沿水平方向扫描同时也进行保存,因此被称为栅格型的数据保存方式。

2023-05-24 10:14:15 91

原创 DICOM通信协议标准解析

IOD是对现实世界中医疗实体的面向对象的抽象,是对一类具有共同属性实体的抽象,而不是代表某个显示 世界的实例。IOD的实例化可以描述一个特定的实体。可见IOD与面向对象编程中的“类”的概念十分相似。复合IOD中包含多个相关的实体,实际上为复合IOD的信息交换提供了一个完整的环境定义。当复合IOD的一个实例通信时,这些完整的环境参数在两个应用实体间交换。

2023-05-23 18:41:00 1958

原创 在Vs2019 中配置opencv

配置opencv

2023-03-23 14:36:31 456 1

原创 VS2019中安装使用Qt

vs2019 中安装使用Qt

2023-03-20 10:30:42 1992 2

原创 SaaS是什么,和多租户有什么关系?

SaaS的概念和多租户的关系

2023-02-10 17:30:28 1711

原创 数据仓库,数据湖

大数据

2023-02-10 10:55:47 1309

原创 十大排序和基础查找算法

堆是一种常用的树形结构,是一种特殊的完全二叉树,当且仅当满足所有节点的值总是不大于或不小于其父节点的值的完全二叉树被称之为堆。

2022-10-25 23:02:38 370

原创 正则表达式的学习

到现在为止,你已经知道如何去匹配一个字母或数字,但更多的情况下,可能要匹配一个单词或一组数字。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。) 是字面的字符,也就是说,他们表示该字母本身,数字也是一样的。正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。这个模式与 “&5”、“g7"及”-2" 是匹配的,但与 “12”、“66” 是不匹配的。时,它表示"非"或"排除"的意思,常常用来剔除某个字符。

2022-10-24 17:41:45 159

原创 力扣题目:两数相除

不不不,我们的特例已经足够多了,我们只需要在执行tb += tb之前再来一次判断即可,因为要执行tb += tb 的目的是,为了降低时间复杂度,那么只需要判断a还能否再减tb,如果可以,在执行下面的条件,如果不行就跳出,如此即可完美解决问题;算法是写完了,但是上面的算法在我验证的时候出了点儿错误,那就是当除数大于-2^31/2的时候,无疑出现这种情况,我们的结果就是1,但是算法没法直接得出判断,他还是会执行tb+=tb这一步,如果此时我们使用倍增法,那么就会产生overflow的错误。

2022-10-24 16:18:05 309

原创 C++知识点总结复习

宏定义在预处理阶段就完成了替换,在之后被替换的文本参加编译,相当于直接插入了代码,不存在函数调用,执行起来更快;函数调用,需要开辟栈帧,在运行需要时跳转到具体的调用函数。宏定义属于在结构中插入代码,没有返回值;函数调用具有返回值。宏定义参数没有类型,不进行类型检查;函数参数具有类型,需要检查类型;宏定义不需要在最后加分号。

2022-10-24 13:55:42 735

原创 K个一组链表进行翻转

我们在第一步,寻找准备翻转链表的时候,循环完毕end的值应该指向的是准备翻转链表的最后一个节点,此时我们有声明了两个节点,分别是start和next,start保存的是准备翻转链表的头结点,next指向的是end->next,也就是下一组准备翻转链表的头结点,当看到这道题的时候,不自觉的让我想起了,翻转链表的那道题目,直接使用头插法,将链表翻转;这道题也应该是同理,我们将给定链表的每一组当做一个单独的链表,然后将其翻转,最后将反转之后的链表进行连接就可以得到结果。那么,实际操作一下吧!

2022-10-23 19:57:19 947 1

原创 关于TCP/IP 协议的几个经典问题

三次握手是为了确保连接的成功,客户端和服务端都确认可以被连接然后第三次握手建立连接,如果是两次,那么建立的连接就不是百分百准确的,有可能连接失败;四次的话就有点多余了,既然三次握手已经能够准确的建立连接了,没必要再来一次,浪费时间和空间。TCP三次握手是,客户端发送SYN到服务端,服务端收到后,便回复SYN和ACK,状态由LISTEN变为SYN_RCVD,此时这个连接就被推入了SYN队列,及半连接队列。当客户端回复SCK,服务端接收后,三次握手就完成了。

2022-10-23 12:53:19 998

原创 C语言小结

使用完动态内存后要free,不然会发生内存泄漏,且一块空间不能释放两次,也不能释放不属于你的空间,但是可以释放一块指向NULL的指针。所有成员公用一块内存,共用体所占内存的长度时最长成员的字节长度,有效提高了内存的利用效率。函数指针最常见的两个用途:转换表和回调函数。数组指针是一个指针,只不过它指向的的是一个数组,所以当指针加一是,他跳过的是整个数组。指针数组是一个数组,只不过数组里面存放的都是指针。函数指针数组:是一个存放函数指针的数组。指针类型:不管什么指针,大小都是。malloc和calloc。

2022-10-18 11:25:36 307

原创 网络编程小总结

单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。

2022-10-14 16:39:42 458

原创 同步、异步和阻塞、非阻塞之间的关系

同步阻塞,异步非阻塞;epoll的ET模式下必须保证文件描述符是异步非阻塞的,确保当文件描述符中无数据可读是不会一直阻塞。

2022-10-13 18:27:59 278

原创 两个字符串数值相加求和

*指针是不能相加的,因为相加得出的数字毫无意义,但是可以相减,如果两个指针指向一个数组,则相减的结果是两个指针之间元素的数目

2022-10-13 17:06:13 2580

原创 常见的http响应代码代表的意义

客户端发送的请求格式有问题等 描述为“BAD REQUEST”:服务器存在请求的内容可以返回给客户端,代号描述“OK”:请求的内容不存在于服务器,描述“NOT FOUND”:服务器收到请求后,因为自生的问题没法响应。:客户端的请求有异常,方法有问题。

2022-10-12 18:05:32 79

原创 mysql基本语法(续)

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。不过union默认就是删除重复数据的,所以distinct对union 的结果没什么影响。事务可以保证数据的原子性,隔离性和持久性,但是不能保证数据的一致性,数据的一致性要靠开发者来保证。这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。可以使用任意列作为排序的条件,按照ASC(升序)或者DESC(降序)来排序。该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。添加普通索引,索引值可出现多次。

2022-09-27 14:12:17 204

原创 mysql基本语法的使用

mysqladmin --version || 查看mysql版本。

2022-09-26 23:46:01 444

原创 二叉搜索树

初识二叉搜索树

2022-08-31 15:15:07 204

原创 二叉树的创建以及遍历

**二叉树的存储方式有两种,一种是以链表的方式进行存储,一种是以数组的方式进行存储*当以数组的方式进行存储的时候,要注意节点之间的关系,假设根节点的位置为POS那么左子树的位置就是*2*POS+1,右子树的位置就是2*POS+2。正是由于这层关系,当二叉树不是满二叉树的时候,使用数组进行存储*是非常的浪费空间的,空间的利用率较低。*当以链表的方式存储二叉树的时候,每一个二叉树节点都含有一个左孩子指针和一个右孩子指针,两个指针分别*指向相应的节点,节省空间,并且更容易使用。*/...

2022-07-21 17:42:44 2200

原创 使用两个栈实现一个队列

其中4是先入栈的,我们要想使得这两个栈完成队列的功能,那么就需要让4先出栈,显然如果我们只有一个栈是不可能完成这个目的的。但是我们还有另外一个空栈可以使用,我们可以将stack1中的数据先出栈在将出栈的数据同时入到stack2中,这样再从stack2中依次出栈就可以达到队列的效果了。我们要实现一个栈的类,除了要实现插入、删除和取得栈顶元素之外,还要完成获取栈中最小值的功能,并使得min函数的时间复杂度为O(1)。经过分析我们可以看出,机器人想要到达某一点,其能走的路径只有左边和上边。...

2022-07-20 17:11:56 4811

原创 合并K个升序链表

目录题目示例1示例2解题思路那么新的问题有来了,我们如何将时间复杂度降到O(nlongK)呢?题目合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。数据范围:节点总数满足 0≤n≤1050 \le n \le 10^50≤n≤105,链表个数满足 1≤k≤105 1 \le k \le10^5 \ 1≤k≤105 ,每个链表的长度满足 1≤len≤200 1 \le len \le 200 \ 1≤len≤200,每个节点的值满足 ∣val∣<=1000|val| <=

2022-05-19 21:53:11 868

原创 Linux操作系统

这里写自定义目录标题Linux操作系统的发展Linux的目录总结:Linux的目录结构是一颗倒装树![在这里插入图片描述](https://img-blog.csdnimg.cn/20210607152559978.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUxNzI1NzIz,size_16,color_FFFFFF,t_70)文件的

2022-05-18 20:25:34 149

原创 Linux命令

第一部分:命令man//查看帮助手册//1.文件操作命令touch//创建文本文件ls//查看当前目录下的文件mkdir//创建目录文件rmdir//删除空目录文件,不能删除非空目录,删除非空目录要加 -rcp//拷贝文件 cp a.c b.c=>将a.c拷贝到b.c中rm//删除命令 删除目录文件要加参数 -r rm -r tmpmv//剪切或者移动文件,重命名chmod//改变文件权限 u属主 g同组用户 o其他用户;权限:r读权限(4),w写权限(2),x执行权限(1),-

2022-05-18 20:23:35 112

原创 编译链接运行原理

第一节:编译链接运行原理一、编译链接原理当我们历经千辛万苦,将解决一些问题的程序代码写好之后,便来到了“程序”人生中最重要的一步,我们创造了程序但是光创造还是不行的,还需要让我们的程序可以运行起来,才能达到我们的目的。那么一个程序,从编译到运行都要经历那些步骤呢?我们接着往下看:简单来说:我们的程序只需要经过以下几个步程序编译链接的过程:预编译,编译,汇编,链接,运行预编译:删除所有注释,并将“#”的头文件在当前位置展开,得到一个新的.i文本文件编译:将.i文本文件通过编译器编程汇编代码,得

2022-05-18 20:22:29 1246 1

原创 观察者模式------C++时间股票信息的提醒

一、实验内容利用观察者模式实现股票信息的接收。实例说明:某在线股票软件需要提供以下功能:当股票购买者所购买的某只股票的变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的股民。现使用观察者模式设计该系统,会之类涂并变成模拟实现。二.设计类图设计思路:股票是目标类股民是抽象观察者具体人是具体的观察者须在目标类中注册观察者三、类具体代码(要求有相关注释)#include<iostream>#include<string>#include<L

2022-05-18 20:19:18 804

原创 外观模式------C++实现文件加密功能

一、实验内容利用外观模式实现文件加密功能。实例说明:某系统需要实现一个文件加密模块,加密流程分为三个操作,分别是读取文件,加密,保存加密之后的文件。保存文件和读取文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取,加密和保存三个操作,而不需要与每一个类进行交互,使用外观设计模式设计该加密模块。实现类图进行代码,并编写客户端,测试运行代码。二.设计类图 ![在这里插入图片描述](https://img-b

2022-05-18 20:17:09 1012 2

原创 建造者模式------C++实现游戏人物的设定

一、实验内容利用建造者模式实现游戏人物设定。 实例说明:某游戏软件中人物角色包括多种类型,不同类型的人物角色,其性别、脸型、发型等外部特征有所差异,使用建造者模式创建人物角色对象,要求绘制类图并编程实现。二.设计类图三、类具体代码(要求有相关注释)#include<iostream>#include<string>using namespace std;//角色类,这里只声明了角色的类型、性别、脸型和发型等属性class Actor{private: stri

2022-05-18 20:14:56 1321

空空如也

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

TA关注的人

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