前言: 基于: csdn0 娄神的描述 其实看上面两位大佬的博客就已经ojbk了.写的目地主要是自己总结学习一下. 基础: 1.基础的 WebServer应该支持客户端请求静态文件和动态文件. 2. 浏览器是不能够解析动态的php文件的!那么我们编写服务器程序时候如果遇到请求.php动态文件时就应该将php文件翻译为html文件. 3. php-fpm就能够将php文件翻译为html文件.所以我们... 作者:liushengxi_root 发表于 2018/12/12 22:34:11 原文链接 https://blog.csdn.net/liushengxi_root/article/details/84976353 阅读:70 继续阅读 >>


刘生玺 18/12/12 22:34:11
  单链表以及逆置是什么就不说了,就简单说一下思想: 链表的初始状态: 具体的方法就是将头节点后面的节点,依次通过指针指向,插入head头节点之后,即可完成逆置过程.  示意图(这里我写一下中间处理流程,因为这样比较直观.第一次的处理与正常处理雷同): 需要注意的主要有两点: 1. 逆置之后的链表的尾部要NULL.在这里就是刚开始的时候的pHead->next->next = nu... 作者:liushengxi_root 发表于 2018/12/10 16:39:22 原文链接 https://blog.csdn.net/liushengxi_root/article/details/84940640 阅读:30 继续阅读 >>


刘生玺 18/12/10 16:39:22
(堆和栈又统称为动态存储区!!!!!) 1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) :一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表 3、全局区(静态存储区)(static):全局变量和静态变量的存储是放在一块的,初始化的全局变... 作者:liushengxi_root 发表于 2018/12/07 22:47:58 原文链接 https://blog.csdn.net/liushengxi_root/article/details/84888467 阅读:34 继续阅读 >>


刘生玺 18/12/07 22:47:58
1.冒泡与选择 冒泡:冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个数据进行比较,如果前者比后者大,就互相交换,最后就会找到一个最大的落在数组最后.重复以上工作n次即可完成排序. void BubbleSort(vector<int> a) { int len = a.size(); if (len <= 1) 作者:liushengxi_root 发表于 2018/12/07 22:31:36 原文链接 https://blog.csdn.net/liushengxi_root/article/details/84886544 继续阅读 >>


刘生玺 18/12/07 22:31:36
概述:什么是线程池?    因为程序边运行边创建线程是比较耗时的,所以我们通过池化的思想:在程序开始运行前创建多个线程,这样,程序在运行时,只需要从线程池中拿来用就可以了.大大提高了程序运行效率. 如何实现:    一般线程池都会有以下几个部分构成: 1. 线程池管理器(ThreadPoolManager):用于创建并管理线程池 2. 工作线程(WorkThread): 线程池中线程 3. 任务队列:用于存放没有处理的任务。提供一种缓冲机制。 4. 用于添加任务的接口  总的来讲,就是先创建几个线程,然后这些线程等待任务队列,不为空拿出任务执行即可(任务可以是对象,也可以是某个函数). 第一种实现: #ifndef _THREADPOOL_H #define _THREADPOOL_H #include <vector> #include <queue> #include <thread> #include <iostream> #include < 继续阅读 >>


刘生玺 18/11/10 22:57:15
最简单的二分 1.循环实现 template <typename T> int binary_search(const vector<T> &set, const T &value) { auto low = set.begin(); auto high = set.end(); auto high_dump = high; auto low_dump = low; auto mid = low + ((high - low) >> 1); /*1. mid=(low+high)/2,如果 low 和 high 太大就会产生溢出*/ while ((low <= high) && (mid != high_dump)) /*2. 一定是 <= */ { if (*mid == value) return mid - low_dump; /*3. 一定要+1,-1,不然当  继续阅读 >>


刘生玺 18/11/04 22:52:10
1. 为新线程传递参数 错误代码示例: for (i = 0; i < N; i++) { pthread_create(&tid, NULL, &handle, &i); } 当当当,要提问啦!!! 以上这段代码会发生什么奇怪的事情吗?当线程去进行处理i的时候,如果cpu调度到主线程运行,就会改变i的值。因为传入的是地址,所以线程中使用的i就会被改变。这就会出现问题。那么我们如何给线程传递参数呐?一般有以下两种方法: 1. 传送值而不传送地址 2. 通过`new,malloc`传递 1. 传送值而不传送地址 for (i = 0; i < N; i++) { pthread_create(&tid, NULL, &handle, (void *)i); } void *handle(void *arg) { int i = (int)arg; 。。。 retur 继续阅读 >>


刘生玺 18/09/27 23:41:07
   首先,如果你还不了解什么是带外数据:点这里 心跳机制的产生就是为了检测出对端主机或到对端的通信路径是否过早失效。 注意:在使用心跳机制时,你应该考虑是不是符合你所处的情景,确定在对端应答的时间超过 5~10s 之后终止连接是件好事还是坏事。如果你的产品需要实时的知道对端的“生存状态”,(要么是为了需求,要么是为了节省资源)那么就是需要这种机制的。一般用于 长连接 。    在这里,我们使用TCP的带外数据来完成心跳机制的实现(每秒钟轮询一次,若5秒没有得到响应就认为对端已经“死亡”),实现如下所示 : 客户端每隔1秒钟向服务器发送一个带外字节,服务器收到该类型的字节然后再发送回一个带外字节。因为每一端都需要对端不复存在或者不再可达。需要指出的是:**数据,回送数据和带外字节都通过单个的连接交换的 。**代码实现如下,具体实现细节在代码中有注释指出 Recvline 函数 #include "../myhead.h" static int recv_cnt = 0; static char 继续阅读 >>


刘生玺 18/09/23 15:31:39
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可 继续阅读 >>


刘生玺 18/09/18 17:21:48
   首先给出OSI 参考模型与TCP/IP协议模型图: 1. 概述: 首先,我们需要知道的是数据分为两种,一种是带内数据,一种是带外数据。带内数据就是我们平常传输或者说是口头叫的数据。带外数据就是我们接下来讲的内容。    许多的传输层都具有带外数据(也称为 经加速数据 )的概念,想法就是连接的某段发生了重要的事情,希望迅速的通知给对端。这里的迅速是指这种通知应该在已经排队了的带内数据之前发送。也就是说,带外数据拥有更高的优先级。带外数据不要求再启动一个连接进行传输,而是使用已有的连接进行传输。    其中,UDP没有实现带外数据(是个极端哦~)    TCP中telnet,rlogin,ftp等应用(除了这样的远程非活跃应用之外,几乎很少有使用到带外数据的地方) 2. TCP 带外数据 2.0 铺垫 : 我们亲爱的 TCP 就位于传输层,下面还有互联网层(主要是IP)与网卡等 。相信学过网络编程的都知道,对于报文的处理,在经过每一层时都会有添加头部和解析头部的操作。 继续阅读 >>


刘生玺 18/09/13 17:36:24