自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++智能指针简易实现

为什么需要智能指针智能指针的作用在于帮助程序员回收不再使用的内存。c/c++程序员都知道,堆内存的申请和释放是由程序员自己控制的,在提升灵活性的同时,我们也常常因为内存异常而头疼,相信每个c/c++程序员都遇到过内存泄露、内存溢出或着是因为使用悬垂指针而导致程序崩溃,这种问题往往不容易被找到。普通指针容易碰到的问题忘记释放内存,导致内存耗尽后程序崩溃。 提前释放了内存,导致其他指针变...

2018-10-10 16:24:53 351

原创 linux文件管理命令

 

2018-09-18 15:53:11 108

原创 linux环境变量

bash文件两个基本的系统配置文件:/etc/bashrc和etc/profile查看bash配置文件:ls .bash*bash配置文件path变量声明(以冒号隔开):执行命令:"#  source.bash_profile"立即使环境变量生效。用命令显示环境变量:echo $变量名。如echo $PATH、echo $HOME。添加、修改:export ...

2018-09-18 15:20:41 149

原创 Shell环境

Shellshell是一个命令解析器。是命令编程语言,通过命令编写程序。常用方法自动补全:Tab键。 命令行历史记录:上下键。Shift键加上线可以控制输出。bash_history存放所以敲过的命令。Ctrl+R进入增量收索。 ……命令的排列用分号连接:command1;command2。不管command1是否成功,2都会执行。 用and符号:command1&am...

2018-09-18 14:59:59 1036

原创 linux文件结构

linux目录结构阶层式的树状目录结构:bin:可执行命令。boot:内核、系统引导。etc:所有的配置文件。usr:系统用户工具和程序,bin:用户命令,include:标准头文件,lib:库文件,src:内核源代码。tmp:临时文件。dev:所有外部设备文件(驱动)。home:用户文件夹。lib:放动态库。mnt:临时挂载其他文件。linux文件...

2018-09-18 14:40:09 1327

原创 TCP协议(三)

拥塞控制拥塞:太多发送主机发送了太多数据导致网络阻塞。表现:分组丢失(路由器缓存溢出),分组延迟过大(路由器排队变长)。拥塞控制和流量控制的区别:拥塞是控制整个网络的负载,流量是控制端对端的负载。拥塞的成因因为路由器的吞吐率有限,主机的发送速率大与路由器的最大吞吐量后,来不及发送的数据将被存到缓存中,并且缓冲会越来越大,所以延迟会越来越大。当路由器没有缓冲时,不能存进缓存的数据...

2018-09-17 09:58:25 116

原创 TCP协议(二)

以字节为单位的滑动窗口 正常情况: 首先要设定接收窗口的字节数,发送窗口字节数由对方接收窗口的字节数决定。首先将要发送的文件,依次拷贝到发送缓存中。依次将窗口内的数据发出,无需等待对方回复,但是发送后暂时不能将数据从缓存中删除。若窗口内数据都发送接收后,仍没有收到对方的确认回复,则等待。收到累积确认后,窗口向前滑动对方收到的字节数。并发送窗口内新加入的数据。接收方...

2018-09-13 17:58:42 132

原创 TCP协议(一)

TCP协议的特点面向连接。 点对点,一个TCP连接只能有两个端点。 提供可靠交付,提供流量控制、拥塞控制。 全双工通信。 面相字节流。TCP报文格式首部:前20个字节固定有,后面跟随可选部分(可变长)和填充部分。源端口:16位。 目的端口:16位。 序号:填入数据部分第一个字节在整个传输文件中的位置,32位。 确认号:填入数据部分最后一个字节在整个传输文件中的位置加...

2018-09-13 16:45:46 132

原创 UDP协议

UDP数据报文格式伪首部(pseudo header)通常有TCP伪首部和UDP伪首部。在UDP/TCP伪首部中,包含:32位源IP地址。 32位目的IP地址。 8位填充0。 8位协议。 16位UDP长度(IP数据报长度)。伪首部并非TCP&UDP数据报中实际的有效成分。伪首部是一个虚拟的数据结构,其中的信息是从数据报所在IP分组头的分组头中提取的,既不向下传送也...

2018-09-11 16:54:05 197

原创 传输层概括

传输层的两个协议TCP基于可靠传输、丢包可重传、确保数据的完整性、有序性。将数据分段并编号,需要建立会话保证网络畅通。UDP尽最大努力进行传输。不分段,一个数据包完成数据通信,不需要建立会话连接,可用于多播。传输层和应用层的关系http = TCP + 80端口                       https = TCP + 443端口ftp = TCP +...

2018-09-05 17:28:41 116

原创 ICMP(网际控制报文协议)、IGMF(组播)协议简介

ICMP协议的用途用于报告差错。ICMP协议报文ICMP报文的类型有两种:差错报告报文、询问报文。 差错报文分文:终点不可达,源点抑制(数据发太快了)、时间超过、参数问题、路由重定向(优化路径)。 询问报文:ping、pathping(能跟踪路径、计算丢包情况)。IGMF协议的用途IGMF用来管理组播成员,一般用于音频、视频会议等。可以节省带宽和流量。...

2018-09-03 19:40:02 709

原创 DHCP协议简介

主机如何获得IP地址硬编码:静态配置。IP地址、子网掩码、默认网关、默认DNS服务器(本地DNS服务器)。 DHCP动态主机配置协议。从服务器动态获取上面的信息。一种即插即用的协议。允许地址重用。支持在用地址续租。支持移动用户加入。DHCP报文主机广播"DHCP discover"(发现报文):用来查找DHCP服务器。 DHCP服务器利用"DHCO offer"(...

2018-09-03 18:56:38 798

原创 路由协议简介

什么是数据路由路由器在不同网段转发数据包,夸网络通信的都叫路由网络通畅的条件能去能回:沿途的路由必须知道到目标网络,下一跳给谁。必须知道返回的原网络,下一跳给谁。静态路由直连的网段,不需要其他操作就可以通信,非直连的网段,需要管理员设置路由表。通过设置静态路由可以达到负载均衡。通过将连续的小的子网构成一个超网,可以缩短路由表的长度,缩短收索时间,这种方式叫做路由聚合...

2018-09-03 16:22:24 435

原创 IP协议基础(二)

IP数据报IP数据包的首部固定最少有20个字节,是每个IP数据包都有的部分,数据部分长度可变。IP数据包首部:版本:IPV4/IPV6 首部长度:整个首部的长度(包括可选、填充),最大可表示15个单位,一个单位为4字节。 区分服务:QOS、不同服务优先级不一样(主机和链路都需要配置)。 总长度:整个IP数据包的字节数,最大65535,单位为字节。 标识:计数器。每产生一...

2018-08-31 17:56:26 1767

原创 ARP协议

传输数据时为什么同时需要MAX地址和IP地址在数据传输时,并不是直接从起始地址直接传到目标地址,这中间有很多中转站(交换机、路由器等)。每到达一个中转站,MAX帧中的源MAX地址改为当前设备(中转站)的MAX地址,目标MAX地址改为下一个设备(中转站或目的地)的MAX地址,而IP地址保持不变。从主机A到主机B的通信过程:结论:MAX地址决定数据下一次会发送到哪个中转站,IP地址...

2018-08-31 11:34:33 3330 2

原创 IP协议基础(一)

IP层次结构将IP地址用32位的二进制表示。 将32位IP地址分为网络ID和主机ID。好处:路由器可以只关心到某一网段的路径 ,不需要考虑整条路径。IP地址的分类将32位IP地址分为4段,每段8个二进制A类:第1段为网络地址,2-4段为主机地址。(第一段1-126)(第一段127是本机地址) B类:1-2段为网络地址,3-4段为主机地址。(第一段小于128-191) C...

2018-08-30 23:11:59 664

原创 网络层概括

网络层提供两种服务:它提供两种服务:虚电路服务:设置数据的传输路径、目的地,即数据会经过哪些节点,都已经确定,可以不写地址(固定的路径,需提前设定)。当某一节点断开连接,则网络断开。(可以进行流量控制) 数据报服务:路由器知道自己所能到达的其他路由,根据目标地址,通过查表临时决定数据的传输路径(灵活的路径,需要完整的目标地址)。断开一个节点不会影响数据的传输。(只能通过主机实现流量控制)...

2018-08-30 16:41:53 152

原创 C++实现简单的反射

文中的Qt类(Q开头的类)都可以通过STL库代替什么是反射Java中,反射是一种强大的工具。它使您能够创建灵活的代码,这些代码可以在运行时装配,无需在组件之间进行源代表链接。反射允许我们在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码。这使反射成为构建灵活的应用的主要工具。C++语言本身不支持反射机制,但C++对象总是要序列化的,序列...

2018-06-19 15:41:23 960

原创 C++实现插件系统

  文中的Qt类(Q开头的类)都可以通过STL库代替简述首先由开发人员编写系统框架,并预先定义好系统的扩展借口。插件由其他开发人员根据系统预定的接口编写的扩展功能,实际上就是系统的扩展功能模块。插件都是以一个独立文件的形式出现。对于系统来说并不知道插件的具体功能,仅仅是为插件留下预定的接口,系统启动的时候根据插件的配置寻找插件,根据预定的接口把插件挂接到系统中。插件系统所用到...

2018-06-19 11:06:09 3070 1

空空如也

空空如也

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

TA关注的人

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