自定义博客皮肤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)
  • 收藏
  • 关注

原创 B树(二)

B树目录:什么是B树B树的最小度数B树的高度什么情况下使用B树B树的插入B树的删除关于1~4已经在上一节介绍过了B树这里重点介绍B树的插入和删除5. B树的插入B树要保持它的平衡及最小度数(t-1=<n<=2t-1, t<=child<=2t)特性,则需要在插入以后也是一个满足此特性的B树。那么如果是你,如何保证在插入关键字后,新的B树也能满足...

2019-03-20 14:57:25 257

原创 B树

B树目录:什么是B树B树的最小度数B树的高度什么情况下使用B树B树的插入B树的删除正文:什么是B树1> 是一种平衡搜索树2> 为磁盘或者其他直接存储的辅助存储设备设计3> 类似于红黑树,但是更降低磁盘操作I/O4> 节点分为内部节点(非叶子节点)和叶子节点5> 节点可以不止一个关键字6> 假设节点中的关键字个数为...

2019-03-18 23:06:57 236

原创 TCP客户端服务端demo

服务端程序&gt;#include &lt;stdio.h&gt;#include &lt;sys/socket.h&gt;#include &lt;strings.h&gt;#include &lt;netinet/in.h&gt;#include &lt;arpa/inet.h&gt;#include &lt;unistd.h&gt;#include &lt;stdlib.h

2018-10-17 22:42:18 285

原创 accept中的监听套接字和已连接套接字

int accept(int sockfd, struct sockaddr* cliaddr, socklen_t *addrlen);该函数用于从已完成连接的队列队头返回下一个已完成连接。 其中sockfd为监听套接字cliaddr和addrlen由内核填入客户端的协议地址返回值为已连接套接字  监听套接字一个服务进程通常只创建一个监听套接字,用来监听是否有...

2018-10-15 21:31:35 791

原创 listen中的backlog

服务端在bind完后,会启用监听,即listenint listen(int sockfd, int backlog);其中backlog规定了内核应该为响应套接字排队的最大连接个数。在内核中维护了两个队列,一个是未完成队列,一个是已完成队列未完成队列,即没有完成三次握手 已完成队列,已经完成三次握手,但是进程还没处理到队列是多少取决于backlog,以及内核的实现,不会小于...

2018-10-15 21:18:45 659

原创 connect函数,出错返回

ETIMEOUT,表示未收到SYN命令的响应(可能该服务器ip地址不存在,收不到arp的响应,但是有该地址的子网) ECONNREFUSED,表示服务端在我们指定的端口没有进程等待与之连接,是个硬错误(ip地址存在,并无对应的监听端口进程) EHOSTUNREACH,ENETUNREACH,表示目标主机不可达 ,是个软错误(路由器x跳以后找不到能到达的路由,路由返回不可达)...

2018-10-14 21:07:19 3321

原创 测试机器的字节序,大端or小端

写了个demomain.cpp如下:#include &lt;stdio.h&gt;int main(){        union{                int n;                char szn[sizeof(int)];        }un;        un.n = 0x01020304;        if ( sizeof(i...

2018-10-12 14:30:02 181

原创 应用进程与socket缓冲区

TCP如果进程缓冲区&gt;套接字缓冲区,阻塞write 如果套接字的缓冲区中有数据,阻塞write即套接字的缓冲区容不下要发送的数据,则阻塞进程,知道发送数据都复制到套接字的发送缓冲区。TCP将发送缓冲区的数据发送给对端TCP 对端必须确认收到的数据 本端TCP丢弃已确认的数据 已发送并未确认的数据,必须保留副本,直到确认为止UDPUDP不存在真正的发送缓冲区,因为无...

2018-10-12 10:35:50 649

原创 TCP连接状态

客户端最后TIME_WAIT,需等待2MSL超时,然后恢复到CLOSED状态。等待超时的原因为:1.防止服务器没收到ACK,那么服务器超时后,会重新发FIN和ACK,此时,客户端就可以重发ACK给服务器,否则,服务器就无法转换为CLOSED2.等待网络中的旧的报文生命周期结束,在网络中消失,下次重新发送报文,网络中就都是新的了 如果一方突然断电了,有没有办法知道?答:没...

2018-10-09 15:28:56 118

原创 TCP三次握手和四次挥手

三次握手 四次挥手FIN由调用close自动触发服务端也可以主动关闭

2018-10-09 09:50:55 104

原创 重来

《重来》算是最近读的最快的一本书了,言简意赅,直击重点,很久没有这么酣畅淋漓、一鼓作气的读完一本书,读完还有意犹未尽之感。 有几处是我已经做到,并且深度认可的: 抓住灵感,一鼓作气              灵感有保质期,在灵感来临时,如果能立刻动工,则往往会效率很高;在我想做一个工具时,一直忙于其他工作,没有动工,这个工具我认为对于我的研发工作会有很大的帮助,但是没有想好具体的思路...

2018-10-06 20:33:54 162

原创 单件模式

单件模式确保一个类只有一个实例,并提供一个全局访问点class service{private: service();public: static service* getInstance(); ~service();private: static service* instance_;}service* service::instance_ = 0;service* service::getIn...

2018-06-28 22:01:49 163

原创 工厂模式

定义定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类中,工厂方法用来处理对象的创建,并将这样的行为封装在子类中,这样,客户程序中关于超类的代码就和子类对象创建的代码解耦了使用abstract Product factoryMethod(String type)工厂方法是抽象的,依赖子项来处理对象的创建工厂方法必须返回一个产品,超类中使用的方法通常使用到工厂...

2018-06-28 22:00:05 148

原创 装饰者模式

装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供比继承更有弹性的替代方案,组件和装饰者继承自相同的抽象类/接口装饰者有个变量记录组件通过嵌套调用实现装饰for example:星巴克咖啡:基础咖啡作为组件调料作为装饰者调料可以任意搭配,比如:奶泡、摩卡、糖浆等等//超类组件public abstract class component {methodA();methodB();}//继...

2018-06-28 21:56:44 187

原创 策略模式

策略模式定义了算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。将超类A中变化的部分提取出来将这些变化的部分,分别设计接口,即其类B, C, D和子类BB, BBB, CC, CCC, DD, DDD在超类A中使用变量记录A{B varb;C varC;void getBFunc(){B.func();}void getCFunc(){C.func();}}在A...

2018-06-24 22:06:09 105

原创 观察者模式

观察者模式定义了对象间的一对多依赖,这样一来,当一个对象改变时,它的所有依赖者都会收到通知并自动更新。可以用传统的订报纸类比:报社负责出版报纸读者向报社订阅报纸只有报社有新报纸,读者就会收到读者可以取消订阅报社将读者从订阅名单中剔除,不再派送新报纸其中一个报社对应着多个读者,读者订阅消息,报社派送消息,这就是观察者模式。其中报社被称为主题,读者被称为观察者。观察者模式提供了一种对象设计,让主题和观...

2018-06-24 22:04:55 142

原创 浅谈网络之DHCP协议

DHCP协议的作用是动态分配IP地址其出现的需求是,当计算机数目比较多时,管理员没有办法高效的分配ip地址,如果是每个人都找管理员配一下地址,不仅管理员忙不过来,等待上网的人也会非常痛苦;那么DHCP协议是如何自动分配ip地址的呢假设一台计算机A,没有地址,那么就开始了如下场景:A发送Udp的广播说:为没有地址,谁能给我一个, 我的mac地址是xxxxxx;    //A发送源ip 0.0.0.0...

2018-06-23 22:13:29 269

原创 区块链之交易及加密

区块链使用非对称加密对交易进行加密和解密非对称加密有公钥和私钥,并且有如下特点:公钥可以对外公开,私钥不可以不能由公钥推导出私钥,确保私钥的安全性。知道明文和密文,无法知道钥匙知道钥匙和密文无法知道明文公钥和私钥的使用场景:对方用你的公钥对数据进行加密,只有你用私钥进行解密才能看到密文,别人不拥有你的私钥,解密不了。你用私钥进行签名,即私钥+明文=&gt;摘要;对方用你的公钥进行验证,可以知道数据...

2018-06-23 21:39:48 3461

原创 区块链之区块链概述

点对点网络网络上发生很多交易这些交易是未确认交易需要将这些交易按照时间顺序打包打完包以后按照时间顺序链接在一起-----&gt;区块链首先打包的人获得奖励所有的交易是有手续费的当出现的同时有人打包成功,则看后面打包的人站在哪边,多数服从少数每次打包时间的理论间距在10分钟打包以后交易才算被确认...

2018-06-23 20:53:23 493

空空如也

空空如也

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

TA关注的人

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