自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多路IO复用--epoll实现

文章目录epoll事件有两种模型:Edge Triggered(ET) 边缘触发,只有数据到来才触发,不管缓存区中是否还有数据Level Triggered(LT) 水平触发,只要有数据就会触发server.c#include <stdlib.h>#include <stdio.h>#include <string.h>#include &l...

2019-06-20 18:03:03 280

原创 epoll-loop反应堆模型

2019-06-20 09:45:10 443

原创 c/c++排序算法-堆排序

文章目录基本思想算法的实现:时间复杂度空间复杂度基本思想堆顶元素(即第一个元素)必为最小项(小顶堆)堆顶元素(即第一个元素)必为最大项(大顶堆)初始时把要排序的n个数的序列看作是一棵顺序存储的二叉树(一维数组存储二叉树),调整它们的存储序,使之成为一个堆,将堆顶元素输出,得到n 个元素中最小(或最大)的元素,这时堆的根节点的数最小(或者最大)。然后对前面(n-1)个元素重新调整使之成为堆...

2019-06-18 18:02:56 549 1

原创 c/c++排序算法-交换排序

文章目录lksdjfklsdjfkldsjflk

2019-06-17 18:55:22 787

原创 c/c++排序算法-选择排序

文章目录简单的选择排序基本思想操作方法:时间复杂度分析二元选择排序(简单选择排序的改进版)简单的选择排序基本思想在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。#include <stdio.h>void pri...

2019-06-17 18:37:04 488

原创 c/c++排序算法-插入排序

文章目录直接插入排序(Straight Insertion Sort)希尔排序(Shell's Sort)排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。直接插入排序(Straight Insertion Sort)#include <stdlib.h>#include &lt...

2019-06-12 01:39:40 367 1

原创 多路IO复用--poll实现

文章目录函数参数说明server.c函数参数说明 int poll(struct pollfd *fds, nfds_t nfds, int timeout); struct pollfd { int fd; /* file descriptor */ short events; /* requested...

2019-04-21 23:42:14 161

原创 多路IO复用--select实现

文章目录select函数select函数int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);参数1:所监听的所有文件描述符中,最大的文件描述符+1参数2:所监听的文件描述符“可读”事件参数3:所监听的文件描述符“可写”事件参数4:所监听的文...

2019-04-10 01:16:16 445 1

原创 UNIX系统中的文件共享

文章目录文件共享摘自《UNIX环境高级编程第三版》文件共享内核使用三种数据结构表示打开文件,它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。第一种数据结构每个进程在进程表中都有一个记录项,记录项中包含一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:文件描述符标志(close_on_exec)和 指向一个文件表项指针...

2019-02-19 17:33:13 1659

原创 TCP连接的心跳包机制

文章目录什么是心跳机制为什么需要心跳机制?如何及时有效地检测到另一方的非正常断开TCP的keeplive保活机制什么是心跳机制所谓的心跳包就是(探测性的)数据包,之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。为什么需要心跳机制?...

2019-02-14 11:38:11 3412

原创 在WebSocket中使用mqtt

文章目录WebSocket协议WebSocket协议WebSocket协议是基于TCP的一种应用层网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。取代了网页和服务器采用HTTP轮询进行双向通讯的机制。如果mqtt在WebSocket连接上传输,必须满足以下条件:mqtt控制报文必须使用WebSocket二进制数据帧发送,如果收...

2019-01-16 18:26:15 2862

原创 C++设计模式~代理模式(Proxy)

文章目录代理模式没有代理的UML只有代理的UML符合实际的UML代理模式代理模式为其他对象提供一种代理以控制对这个对象的控制

2019-01-03 17:40:36 191

原创 三级分销规则

三级分销规则Created with Raphaël 2.2.0三级分销开始结算以 2018-12-15 为结算日为例通过当前时间获取当前结算周期为6以 2018-07-15 03:00:00为第一期判断是否结算过直接返回启动线程进行结算通过当前周期获取结算的起始时间和结束时间开始时间:2018-11-01 00:00:00 结束时间:2018-12-01 00:00:00通过起始和结束时间获...

2018-12-27 13:40:31 1212

原创 研发流程

2018-12-26 16:44:14 581

原创 C++设计模式~装饰模式(Decorator)

文章目录装饰模式代码举例decorator.hdecorator.cppmain.cpp再举例person.hmain.cpp装饰模式我们需要把所需的功能按正确的顺序串联起来进行控制,比如 先穿衣服—&gt;裤子—&gt;鞋子—&gt;领带, 当然相反也可以装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活代码举例decorator.h#i...

2018-12-25 21:12:17 318

原创 C++设计模式~策略模式(Strategy)

文章目录商城促销的案例单纯策略模式代码举例strategy.hstrategy.cppmain.cpp策略模式+简单工厂模式代码举例strategy.hstrategy.cppmain.cpp商城促销的案例1.简单工厂模式实现简单工厂模式我需要让客户端认识两个类,CashSuper和CashFactory2.策略模式+简单工厂模式实现而策略模式我只需要给客户端暴露CashCon...

2018-12-22 14:09:21 576 1

原创 UML类图

参考自《大话设计模式》,给自己留个笔记

2018-12-22 12:14:20 250

原创 C++设计模式~工厂模式(Factory)

问题:在面向对象系统设计中经常可以遇到以下的两类问题:问题1为了提高内聚(Cohesion) 和松耦合(Coupling),需要我们抽象出一些类的公共接口以形成抽象基类或者接口。这样我们可以通过声明一个基类的指针指向子类对象进而达到多态的目的,但是这样很容易出现一个问题:n多的子类继承自抽象基类,我们不得不在每次要用到子类的地方就编写new xxx();这样就有两个问题产生:必须要有实...

2018-12-20 13:49:32 454

原创 MySql过滤数据

where子句操作符where子句的位置 在同时使用 order by 和 where子句时,应该让 order by 位于 where之后,否则将会产生错误操作符说明=等于&lt;&gt;不等于!=不等于&lt;小于&lt;=小于等于&gt;大于&gt;=大于等于between A and B在指定的两个值之间...

2018-11-20 17:11:27 355

原创 TCP/IP协议-链路层

文章目录1.IEEE 802封装2.环回接口1.IEEE 802封装TCP/IP协议族中,链路层主要有三个目的:(1)为IP模块发送和接收IP数据报(2)为ARP模块发送ARP请求和接收ARP应答(3)为RARP发送RARP请求和接收RARP应答IEEE 802.2/802.3(RFC 1042)和以太网的封装格式(RFC 894)2.环回接口A类网络号127就是为环回接...

2018-11-01 23:06:56 290

原创 TCP/IP协议-封装和分用

数据进入协议栈时的封装过程由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP必须在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此, IP在首部中存入一个长度为8 bit的数值,称作协议域。 1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。许多应用程序都可以使用 TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个应...

2018-10-25 21:49:54 798

原创 互联网地址和域名系统

文章目录1.互联网地址2.域名系统1.互联网地址各类IP地址的范围(点分十进制表示法)类型范围A0.0.0.0 到 127.255.255.255B128.0.0.0 到 191.255.255.255C192.0.0.0 到 223.255.255.255D224.0.0.0 到 239.255.255.255E240.0.0.0 到...

2018-10-24 15:11:11 1025

原创 TCP/IP协议-分层

文章目录概念性术语1.报文(message)2.分组(packet)3.数据包(data packet)4.数据报(datagram)5.帧(frame)TCP/IP的四层协议系统网络层和运输层之间的区别不那么明显。为什么要把它们划分成两个不同的层次呢?概念性术语1.报文(message)报文是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需...

2018-10-24 11:09:48 516

转载 Git项目管理工具的使用

转自:https://blog.csdn.net/sinat_23880167/article/details/78502528 &amp;amp;amp;nbsp;基于linux下面git百度云视频教程:http://pan.baidu.com/s/1bpk472B 密码:x4fl安装: &amp;amp;amp;nbsp;sudo apt-get ...

2018-10-18 10:51:14 511

原创 socket中的Nagel算法

MSS和MTU MTU:maximum transmission unit 网络传输最大单元,由硬件规定,如以太网的MTU为1500字节。 MSS:maximum segment size 网络传输数据最大值,为 TCP 数据包每次传输的最大数据分段大小,一般由发送端向对端 TCP 通知对端在每个包能发送的最大 TCP 数据。 注:MSS + 包头数据 = MTU,...

2018-07-09 00:50:10 466

原创 用户权限、用户、用户组

chmod命令chmod命令 文字设定法 *chmod [who] [+-=] [mode] |who|+-=|mode| | :– |:–|:–| |sd|||

2018-06-12 23:46:08 279

原创 OSI的7层模型和TCP/IP四层模型

TCP/IP 四层模型 TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。 OSI 7层模型 物理层:主要定义物理设备标准(网线的接口类型、光纤的接口类型、各种传输介质的传输速率),作用:传输比特流,就是将高低电平(0,1)转化为电流强弱来进行传输,到达目的地之后再转...

2018-06-06 09:52:28 693

原创 常见的通讯协议

IGMP概述IGMP攻击IGMP工作过程ICMP概述ICMP攻击IGMP概述 IGMP(Internet Group Manage Protocol):internet组管理协议,提供internet网际多点 传送的功能,即将一个ip包拷贝给多个host IGMP攻击 windows系列采用了这个协议,因为此项技术尚不成...

2018-06-06 00:06:12 1769

原创 C/C++程序找错

C/C++程序找错1.下面的代码输出是什么,为什么?2.对下列代码进行评价3.设有以下说明和定义:4.说出程序最后输出什么5.使出毕生所学吐槽一下这段代码 (功能是字符串颠倒)6.请问下面程序会出现什么情况?7.以下 3 个有什么区别7.写出结果8.写出输出结果9.以下表达式10.交换两个变量,不要第三个变量tmp11.(void *)ptr 和 (*(void**))...

2018-06-05 10:45:55 1646 1

原创 virtual函数

为什么内联函数,构造函数,静态成员函数不能为virtual函数? 内联函数:在编译时期展开,而虚函数的特性是运行时才动态联编,所以两者矛盾 构造函数:用来创建一个新的对象,而虚函数的运行是建立在对象的基础上,在构造函数执行时,对象尚未形成,所以不能将构造函数定义为虚函数。 静态成员函数:属于一个类而非某一对象,没有this指针,它无法进行对象的判别 inline和virt...

2018-06-04 22:43:20 589

原创 缓存数据库:redis基础

缓存数据库:redis redis是一个开源的key-value存储系统。与memcached类似,redis将大部分数据存储在内存中。redis支持的数据类型包括:字符串、 哈希表、链表、集合、有序集合以及基于这些数据类型的相关操作 可以作为内存型缓存服务器,提供持久化存储方案,可以作为结构不复杂的数据库使用。 在一些大型网站中常见到redis的身影配合其他RDB...

2018-06-01 20:28:27 287

原创 关于list容器(链表)

list容器基本概念list优点list容器的迭代器以下代码为验证list是否为循环链表list构造函数list数据元素插入和删除操作list大小操作list赋值操作list数据的存取list常用操作list容器基本概念 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点组成,结...

2018-06-01 13:11:18 1393

原创 关于queue容器(队列)

queue容器基本概念queue构造函数queue存取、插入和删除操作queue赋值操作queue大小操作queue容器基本概念 queue是一种先进先出的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素。queue所有元素的进出都必须符合”先进先出”的条件,只有queue的顶端元素,才有机会被外界取用。queue不提供遍历功能,也不...

2018-06-01 11:57:18 322

原创 关于stack容器(栈)

stack容器基本概念stack构造函数stack赋值操作stack数据存取操作stack大小操作stack容器基本概念 stack是一种先进后出的数据结构,它只有一个出口,stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为。stack构造函数...

2018-06-01 11:44:59 279

原创 关于vector容器(动态数组)

vector容器常用操作初识vectorvector构造函数vector常用赋值操作vector大小操作vector数据存取操作vector插入和删除操作用swap,收缩内存空间reserve预留空间vector容器常用操作 array是静态空间,vector是动态空间vector&lt;int&gt;::iterator it1; ...

2018-05-31 21:38:30 507

原创 关于deque容器(双端队列)

deque(双端队列)容器基本概念deque容器实现原理deque构造函数deque赋值操作deque大小操作deque双端插入和删除操作deque双端插入和删除操作deque插入操作deque删除操作deque(双端队列)容器基本概念 vector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以...

2018-05-31 21:30:03 443

原创 STL基础知识

STLSTL概念的简单总结STLSTL基本概念STL六大组件STL的优点STL组件的三大头STL基本概念 STL(Standard Template Library,标准模板库) STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator) 容器和算法之间通过迭代器进行无缝连接。STL几乎所有...

2018-05-31 16:25:32 461 2

原创 C/C++基础知识

C语言面试题标签(空格分隔): C语言基础00. 目录C语言面试题00. 目录1.关键字 static 的作用是什么?2.”引用”与”指针”的区别是什么?3.项目中*.h 头文件中的 ifndef/define/endif 的作用?4.#include&amp;amp;lt;&amp;amp;gt; 与 #include “”的区别?以file.h为例5.描述实时系统的基本特性6.全局变量和...

2018-05-29 19:30:19 330

空空如也

空空如也

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

TA关注的人

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