自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python+django实现早教系统之环境配置

python+django实现早教系统之环境配置

2019-05-05 10:38:42 436

原创 C++------函数重载,缺省参数,命名空间

C++介绍 C语言是一种结构化的程序设计语言。最初是为了开发UNIX操作系统,由丹尼斯里奇和肯汤姆逊在B语言的基础上于贝尔实验室开发出来的。C语言是一种面向过程的语言,适合处理较小规模的程序。对于复杂的,大规模的程序,需要高度的抽象,此时C语言就不再适合。因此,在C语言的基础上又增加了新的特性————类,最初,称其为“带类的C语言”。后来,又再次基础上增添了更多的新特性。所以,将其重...

2018-07-09 09:00:35 527

原创 IO多路转接------epoll

        epoll是实现IO多路转接的另一种方式。它与select,poll的作用相同,都是一次等待多个文件描述符。但是,它在接口的使用及原理上与前两者有很大的不同。它改进了select和poll的缺点,使IO操作效率更高。因此它被公认为LInux2.6下性能最好的IO多路转接就绪通知方法。        下面具体介绍epoll的相关概念。epoll        与select,poll...

2018-06-21 18:11:16 608

原创 IO多路转接------poll

        在这篇文章中介绍了利用select来实现IO多路转接。在本文中,将介绍利用poll来实现IO多路转接。        poll与select的作用相同。都是一次等待多个文件描述符,当至少有一个文件描述符上的就绪事件发生时,poll返回满足就绪条件的文件描述符的个数并将发生改变的文件描述符由参数带回。只是poll在接口设计上与select有所不同。        select在接口使...

2018-06-21 09:57:53 332

原创 IO多路转接------select

        在五种IO模型一文中介绍了五种IO模型。在数据通信过程中,分为两部分:一个是等待数据到达内核,一个是将数据从内核拷贝到用户区。在实际应用中,等待的时间往往比拷贝的时间多,所以要提高IO的效率,就要减少等的比重。在阻塞IO,非阻塞IO,信号驱动IO和异步IO中,虽然等待的方式或等待的主体不同,但是无论是谁在等,无论如何等,等待的时间总长是不变的。        在IO多路转接中,由于...

2018-06-20 21:11:32 356

原创 计算机网络------fcntl实现非阻塞IO,dup2实现重定向

        在五种IO模型中有提到在Linux中,默认所有的套接字都是阻塞的。所以要实现非阻塞的套接字,就要执行特定的系统调用来实现。fcntl        函数原型:#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, ... /* arg */ );        参数说明:fd:表示...

2018-06-20 17:11:11 497

原创 计算机网络------五种IO模型

和v

2018-06-20 11:49:47 2038

原创 TCP/IP五层网络模型------数据链路层

        在之前的介绍过的网络层的相关内容中可知,网络层的作用是研究如何将一个数据报由一个网络通过路由器转发至另一个网络。而本文中所说的数据链路层的作用则是研究在同一局域网内,如何将数据帧由一台主机传送至另一台主机。在数据链路层使用的通信信道有两种:点对点的数据通信信道(一对一),广播信道(一对多)。        数据链路层的基本数据单元称为帧。        数据链路层的作用主要是:将发...

2018-06-11 09:27:28 1130

原创 IP协议------路由选择

        当一个数据包发送到某个路由器时,该路由器将数据报如何发送呢。在每个路由器中都会维护一张路由表,路由表的每一行有三个基本消息:目的网络   下一跳IP地址    子网掩码        当路由器收到数据报后,会做如下处理:(1)解析数据报中的目的IP地址;(2)将该IP地址和路由表的第一行的子网掩码进行按位与操作,将结果与该行的目标网络进行对比。        如果与目标网络不相等,...

2018-06-04 15:26:08 1997

原创 IP地址数量限制的解决方案------NAT技术

删除时

2018-06-04 10:43:41 9130 2

原创 IP协议------网段划分

删除吗

2018-06-03 21:02:26 69332

原创 TCP/IP五层网络模型------IP层(网络层)之IP协议

网络层        网络层的作用是在复杂的网络环境中为要发送的数据报找到一个合适的路径进行传输。        网络层向上提供简单灵活,无连接的,尽最大努力交付的数据报服务。从数据报从主机A发送到主机B的过程中可能要经历很多节点。所谓无连接是指:数据报在传输之前不需要提前规划好整个传输路线,即不用提前建立一条从发送主机到接收主机之间的传输连接路线。(如果是有连接服务,该传输路线建立好之后,各数据...

2018-06-02 11:57:43 15607

原创 数据结构------海量数据处理

1. 给定一个大小超过100G的文件,其中存在IP地址,找到其中出现次数最多的IP地址。        要查找IP地址,首先要将100G文件加载到内存以哈希表的形式将其储存起来。其中哈希表中的数组元素一个键值对构成。各IP地址(4字节)作为Key值,IP地址出现的次数作为Value值。在对哈希表进行遍历查找出现次数最多的IP地址。        但是一般的内存不可能有100G,无法将文件中的所有I...

2018-06-01 17:18:37 285

原创 七大排序算法(5)------快速排序(递归和非递归)

         在本文中使用到的升序,降序,交换函数的代码见:这篇博客快速排序(递归实现)        快速排序的基本思想是在待排序序列中找到一个基准值(一般取待排序序列的最后一个元素),然后将该基准值放置在一个合适的位置,使得在基准值之前的元素都小于等于基准值,基准值之后的元素都大于等于基准值。        然后再对基准值之前的序列使用上述方法进行排序寻找基准值位置,对基准值之...

2018-05-31 20:37:09 2682

原创 七大排序算法(4)------归并排序(递归和非递归)

         在本文中使用到的升序,降序,交换函数的代码实现见:这篇博客         在单链表的基本操作中,有一个操作为合并两个有序的单链表使合并后的链表仍然有序。本文中归并排序与这个思想类似。不断使两两有序的序列进行合并。归并排序(递归实现)        例如,有一待排序序列:20 10  9  8  11  10   7  6。        排序过程如上图所示,(1)首先将待排序序...

2018-05-31 18:04:26 2165

原创 七大排序算法(3)------希尔排序

        在本文中使用到的升序,降序,交换函数的代码以及插入排序的思想见:这篇博客        在上述博客中的插入排序中有介绍了插入排序的两个特点:(1)当待排序序列的有序性比较高时,排序的效率比较高;(2)当待排序序列的元素个数较少时,排序的效率比较高。        本文中介绍的希尔排序就是利用插入排序的两个特点来实现的。希尔排序        例如,待排序序列为:10 30 20 6...

2018-05-31 17:07:32 1739

原创 七大排序算法(2)------堆排序

        在本文中使用到的升序,降序,交换函数的代码实现见:这篇博客        有关堆的相关概念和知识点见:

2018-05-31 11:53:38 306

原创 七大排序算法(1)------冒泡,选择,插入排序

        本文中将介绍七大排序算法中的三种排序:冒泡排序,选择排序,插入排序。剩余的排序算法将在接下来的文章中一一介绍。        介于排序分为升序和降序两种,所以,这里将比较规则以回调函数的方式传入排序算法中,这样,在具体实现时,就可以根据不同的需求传递不同的函数指针进而达到不同的排序效果。        升序比较规则定义如下:        降序比较规则定义如下:1. 冒泡排序   ...

2018-05-31 09:55:46 374

原创 TCP协议------可靠性保证机制

        在这篇博客中介绍了连接管理机制,它是TCP协议保证可靠性的重要机制,除了该机制,还有许多实现可靠性得机制,本文中将一一进行介绍。1. 确认应答(ACK)机制        在TCP的协议报头中有两个字段:序列号和确认序列号。这两个字段就是来保证确认应答机制的。        发送方A将要发送的多个数据段排好序发送给接收端B。比如说A要发送序列号为1~1000的数据段。B如果将这些数...

2018-05-29 20:25:44 1625 1

原创 TCP协议的连接管理机制------三次握手,四次挥手

有关TCP协议的相关知识见:这篇博客        TCP与UDP最大的区别就是TCP保证可靠性数据传输。从TCP与UDP的协议报头就可以看出差别。TCP的协议报头比UDP报头多了很多东西,而多出来的这些都是用于保证数据的可靠性传输的。下面将具体介绍TCP保证可靠传输的机制以及报头中的字段是如何用于可靠性传输机制的。1. 连接管理机制        下图为客户端和服务器端根据TCP协议:三次握手建...

2018-05-29 14:55:00 2665

原创 TCP/IP五层网络模型------传输层之TCP协议

        在这篇博客中介绍了有关传输层,端口号以及传输层UDP协议的相关概念,本文将介绍传输层的另一重要协议------TCP协议的相关内容。传输控制协议TCP的特点1. TCP协议是面向连接的。即在进行数据通信之前,发送进程要与接收进程建立连接。连接建立好之后,才可以进行数据传输。当传输结束时,在释放连接。2. TCP协议提供可靠的传输服务。即保证数据可靠的送至接收方进程。当数据丢包时或出...

2018-05-28 17:04:55 2347

原创 数据结构------布隆过滤器的基本操作

       下文中用到位图的相关知识和代码见博客:位图的基本操作              布隆过滤器主要用于在一个字符串集合中查找某个字符串是否存在。要在集合中查找,首先要将该字符串集合储存起来。那么该如何存储呢?        如果用链表,树等结构进行存储,当集合中的元素越来越多时,所占的空间就越来越大。查找的效率也会越来越低。如果用哈希表来存储,首先要根据字符串哈希函数计算字符串对应的数值...

2018-05-26 11:15:54 1876

原创 C语言------将一个字符串中的空格转化为特殊字符

        之前有提到过,在用URL标志

2018-05-25 00:44:44 2360

原创 C语言------在一个整型数组中求连续子数组的最大和

        题目:在一个整型数组中求连续子数组的最大和。连续子数组是指由1或多个下标连续的数组元素组成的数组。如数组:arr[] = {1,5,7},该数组的连续子数组为:{1},{5},{7},{1,5},{5,7},{1,5,7}。因此子数组{1,5,7}的和最大为13。        思路:(1)首先从数组下标为0开始求和,初始设置最大值为下标为0的数组元素值(2)如果加上某个数组元素时...

2018-05-24 19:22:27 6399

原创 TCP/IP五层网络模型------传输层之端口号,UDP协议

ajs

2018-05-24 16:06:03 3905

原创 数据结构------位图的基本操作

        在之前的哈希表中,如果要在表中存放一个整数,此时就要申请一个整型的内存来存放它,一个整型数据在32位或64位平台下都占4个字节。如果现在需要存储的数据非常多,比如说40亿个不重复的数据,就需要160亿个字节来存储,1GB的内存表示的是10亿个字节,此时就需要16GB的内存来存放这些数据,而我们普通的电脑内存一般都是4G的内存,这显然是存放不下的。我们知道,内存中的最小单位是比特位。...

2018-05-23 16:13:41 1920

原创 数据结构------基于哈希桶解决哈希冲突的哈希表

2018-05-21 22:24:46 805 1

原创 数据结构------基于线性探测解决哈希冲突的哈希表

刹车

2018-05-21 11:51:16 4453 1

原创 TCP/IP五层网络模型------应用层

        在网络基础------TCP/IP五层模型一文中笼统的介绍了有关TCP/IP五层模型的相关知识点,本文中将详细的说明TCP/IP五层网络模型中的应用层,及相关的应用层协议。应用层概述        应用层的任务是通过应用程序间的交互来完成特定的网络应用。根据网络应用的不同,应用程序之间就需要根据不同的方式来实现交互。如:如果两个应用程序之间要传递整型数据,那么二者之间必须遵循这样的...

2018-05-20 20:41:28 1882

原创 网络基础------TCP/IP五层模型

        在生活中,如果一个个的计算机都是独立运行的,即彼此之间互不关联。那我们自己的计算机中有什么,我们就只能看到什么,当要在计算机中查找某个内容时,如果自己的计算机中没有相应的内容就会查找失败。但是在别人的计算机中可能有我们想要查找的内容。所以,如果将各计算机连接起来,形成一个网络,就能达到资源共享的目的。网络概述        网络是由若干结点和连接这些结点的链路组成。其中网络中的结点...

2018-05-19 12:10:05 1436

原创 网络基础-------netstat命令详解

1. netstatnetstat是一个用来查看网络状态的重要工具用法:netstat [选项]选项:         n:拒绝显示别名,能显示数字的全部转化为数字         l:仅列出在Listen(监听状态)下的进程         p:显示建立相关连接的程序名,如进程的PID,程序的工作目录,可执行程序名等         t:仅显示基于Tcp协议的相关进程         u:仅显示...

2018-05-17 18:08:22 203

原创 C语言------实现atoi函数

        首先介绍atoi函数的功能:该函数的作用是将参数字符串转换为一个整数。(1)如果参数字符串以数字开头,则一直往后读,直到读到非数字字符或\0。然后将这些数字以整数形式返回。如:“62562hja”,返回整数62562。“1331”,返回整数1331。(2)如果参数字符串以正负号开头,则往后读取,如果紧接着读到数字,此时与(1)相同。只是在返回整数时要加正负号。如果正负号后面不是数字...

2018-05-14 22:41:07 4571

原创 网络编程------TCP协议实现网络版三子棋小游戏

以下用到的TCP协议的程序代码见:网络编程------TCP协议网络程序以下用到的三子棋的游戏规则的相关代码见:三子棋        在网络编程------TCP协议网络程序一文中根据TCP协议分别实现了单进程,多进程,多线程版本的服务器端程序。在多进程和多线程环境中服务器可以同时接收来自多个客户端的连接请求并与之互发消息进行通信。在本文中将继续根据TCP协议来实现与客户端的通信。        ...

2018-05-13 19:58:29 3432 2

原创 数据结构------搜索二叉树的相关操作(递归和非递归版本)

搜索二叉树的概念        搜索二叉树满足下面两个要求:(1)它是一棵二叉树(2)该二叉树中,任意一棵树的根节点值大于它左子树中的所有结点的值,小于右子树中的所有结点的值        因此对于搜索二叉树的中序遍历来说,它是按由小到大依次递增的顺序排列的。搜索二叉树的相关操作        在本文中将介绍搜索二叉树的以下操作:(1)初始化搜索二叉树(2)在搜索二叉树中插入指定元素(递归实现)(...

2018-05-13 09:29:54 484

原创 数据结构------堆的相关操作

堆的概念        堆实际上还是一棵二叉树,不过它还满足下列两点要求:(1)堆是一棵完全二叉树。(关于完全二叉树的定义见:数据结构------二叉树的面试题)(2)堆中元素满足:对任一棵树来说,它的根节点的值比它的左,右孩子都大或都小(注意:左右孩子之间没有明确的大小关系)。        根节点的值比它的左,右孩子元素都大的堆称为大(根)堆。        根节点的值比它的左,右孩子元素都小...

2018-05-12 19:06:58 338

原创 网络编程------TCP协议网络程序

2018-05-11 09:56:02 1115

原创 网络编程------UDP协议网络程序

        以下有关IP地址,端口号,网络字节序列相关知识见:网络编程------IP地址,端口号,套接字,网络字节序         这里要先简单认识UDP协议。UDP协议        UDP协议也称为用户数据报协议。它是传输层的一种协议。根据该协议在进行数据传送时,两台主机之间不需要相互连接,直接根据对方的IP地址和端口号进行数据传送。所以不用花费时间去连接两台主机,因此根据该协议进行传...

2018-05-09 17:13:10 451

原创 网络编程------IP地址,端口号,套接字,网络字节序

IP地址        IP地址是IP协议中,用来标识网络中的唯一一台主机的地址。IP协议有两个版本IPv4,IPv6。在IPv4中,IP地址是一个4字节的32位的整数。在IPv6中,IP地址是一个16字节的128位的整数。        我们通常所见到的IP地址如:192.168.3.195。是一用点分隔的字符串,每个数字用一个字节存储,范围是0~255,所以这种形式的IP地址也被称为“点分十进...

2018-05-08 21:32:41 1743

原创 数据结构------二叉树的面试题

        在数据结构------二叉树的基本操作(递归实现)一文中,介绍了二叉树的结构定义以及一些基本操作,本文将继续介绍一些有关二叉树的面试题。1. 非递归实现二叉树的先序遍历        二叉树的非递归先序遍历要通过一个栈来实现。        先序的遍历的访问顺序为先根节点,再左孩子,最后右孩子。所以,根据栈后进先出的特点,应先入栈右孩子,再入栈左孩子。(1)根节点入栈(2)取栈顶元...

2018-05-06 20:50:17 448

原创 操作系统------守护进程

守护进程的概念            守护进程也被称为精灵进程。它具有如下特点:(1)它是运行在后台的一种特殊进程。(2)它独立于控制终端,所以不能与用户进行直接交互。(3)它周期性的执行某种任务或等待处理某些发生的事件。(4)它不受用户登录注销的影响,一直在运行着。其它进程都是在用户登录或程序运行后才创建。        基于以上的这些特点,守护进程有如下用途:(1)Linux中的大多数服务器都...

2018-05-06 16:31:59 1593

空空如也

空空如也

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

TA关注的人

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