自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

转载 HTTP协议中的Content-Encoding

HTTP协议中的Content-Encoding主要内容    1.Content-Encoding是什么    2.内容编码格式gzip和deflateContent-Encoding是什么Accept-Encoding和Content-Encoding是HTTP中用来对采用哪种编码格式传输正文进行协定的一对头部字段。工作原理如下:    1.首先浏览器(也就是客...

2018-10-31 15:21:32 9236

转载 看完这篇,你应该知道什么是Linux了~

Linux文件系统详解Linux上的文件系统一般来说就是EXT2或EXT3,但这篇文章并不准备一上来就直接讲它们,而希望结合Linux操作系统并从文件系统建立的基础——硬盘开始,一步步认识Linux的文件系统。1.机械硬盘的物理存储机制现代计算机大部分文件存储功能都是由机械硬盘这种设备提供的。(现在的SSD和闪存从概念和逻辑上都部分继承自机械硬盘,所以使用机械硬盘来进行理解也是没有问题...

2018-10-30 13:40:38 217

转载 快速使用Tensorflow读取7万数据集!

一、Brief概述   这篇文章中,我们使用知名的图片数据库[THE MNIST DATABASE]作为我们的图片来源,它的数据内容是一共七万张28x28像素的手写数组图片。   并被分成六万张训练集与一万张测试集,其中训练集里面,又有五千张图片呗用来作为验证使用,该数据库是公认图像处理的"Hello World"入门级别库,在此之前已经有数不清的研究,围绕着这个模型展开。    不过...

2018-10-30 13:37:45 1229

转载 IIS6、IIS7和IIS8各版本的差别

一、写在前面   目前市面上所用的IIS版本估计都是>=6.0的。所以我们主要以下面三个版本进行讲解: 服务器版本 IIS默认版本 server2003 6.0 server2008 7.0 server2012 8.0 二、IIS6的请求过程     由图可知,所有的请求会被服务器中的http.sys组件监听到,它会根据IIS中的Me...

2018-10-30 11:57:36 18196

转载 红黑树介绍

网上有很多红黑树的段子,很多人都说,红黑树只会存在于段子里,不会在面试中或者实际项目中让你实现。来看看网友都是怎么说的:通常,如果有面试官问我红黑数这种问题,我一般扭头就走。不是因为,这个职位用不到还问这个。而是因为......我是真的不会啊:)很多人看着这个网友说的,感觉很扎心。别急,还有更扎心的:这有什么难的!Map map = new TreeMap();...

2018-10-26 17:30:30 196

转载 【算法与数据结构】堆排序是什么鬼?

排序算法相必大家都见过很多种,例如快速排序、归并排序、冒泡排序等等。今天,我们就来简单讲讲堆排序。在上一篇中,我们讲解了二叉堆,今天的堆排序算法主要就是依赖于二叉堆来完成的,不清楚二叉堆是什么鬼的,可以看下:【算法与数据结构】二叉堆是什么鬼?                                                          用辅助数组来实现堆排序算法...

2018-10-26 17:23:47 173

转载 二叉堆是什么?

二叉堆是一种应用很广的数据结构,今天,我们就来简单讲讲二叉堆。什么是二叉堆? 二叉堆是一种特殊的堆。具有如下的特性: 具有完全二叉树的特性。 堆中的任何一个父节点的值都大于等于它左右孩子节点的值,或者都小于等于它左右孩子节点的值。 根据第二条特性,我们又可以把二叉堆分成两类:1、最大堆:父节点的值大于等于左右孩子节点的值。           2.最小堆...

2018-10-26 17:12:09 275

转载 【算法与数据结构专场】BitMap算法基本操作代码实现

上篇我们讲了BitMap是如何对数据进行存储的,没看过的可以看一下【算法与数据结构专场】BitMap算法介绍这篇我们来讲一下BitMap这个数据结构的代码实现。                              回顾下数据的存储原理一个二进制位对应一个非负数n,如果n存在,则对应的二进制位的值为1,否则为0。这个时候,我们的第一个问题:我们在使用byte,int,sho...

2018-10-26 16:59:28 166

转载 《算法与数据结构专场》BitMap算法介绍

我们先来看个简单的问题。假如给你20亿个非负数的int型整数,然后再给你一个非负数的int型整数t,让你判断t是否存在于这20亿数种,你会怎么做呢?有人可能会用一个int数组,然后把20亿个数给存进去,然后再循环遍历以下就可以了。想一下,这样的话,时间复杂度是O(n),所需要的内存空间4byte * 20亿,一共需要80亿个字节。大概需要8GB的内存空间,显然有些计算机的内存一...

2018-10-26 16:46:47 148

转载 漫画: 什么是外部排序?

西天取经的路上,一样上演着编程的乐趣.....                 排序的时候我们可以选择快速排序或归并排序等算法。   为了方便,我们把排序好的2G有序数据称之为有序子串吧。接着我们可以把两个小的有序子串合并成一个大的有序子串。           按照这个方法来回合并,总共经过三次合并之后就可以得到8G的有序子串。            ...

2018-10-26 14:56:04 1496 4

转载 内核中用于数据接收的结构体struct msghdr以及iovec介绍

      我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构。在我们的虚拟机上发送icmp回显请求包,ping另一台主机172.16.48.1.我们使用系统调用sendto发送这个icmp包。ssize_t sendto(int s, const void *buf, size_t len, int flags, c...

2018-10-25 17:35:55 931

转载 学习《apache源代码全景分析》之常用过滤器摘录

1.目前核心输入过滤器和核心输出过滤器包括以下几种:  a.CHUNK编码过滤器;  b.CORE_IN过滤器;  c.CORE_OUT过滤器;  d.Byterange过滤器;2.输入过滤器   (1) CORE_IN    (2) LOG_INPUT_OUTPUT   (3) SSL/TLS Filter   (4) HTTP_IN   (5) DEFL...

2018-10-24 14:59:50 317

转载 学习《apache源代码全景分析》之存储段和存储段组摘录

1.当数据在过滤器中流动传递的时候,数据是以存储段组的形式组织的。每一个存储段组包含多个存储段,每一个存储段是一种数据类型的抽象。2.存储段组包含多个存储段    struct apr_bucket { APR_RING_ENTRY(apr_bucket) link; const apr_bucket_type_t *type; apr_size_t l...

2018-10-24 14:57:07 361

转载 学习《apache源代码全景分析》之过滤器部分摘录

1.过滤器分为输入过滤器和输出过滤器,输入过滤器用于修改从网络读取的数据;而输出过滤器则用于修改生成并写入网络的数据。2.对比      3.输入过滤器主要是对接收到的请求进行处理,它与我们正常思维一致的地方:   (1) 客户端和CORE_IN过滤器之间的数据流方向与输出过滤器的数据方向相反。CORE向网络写入数据,而CORE_IN则是从网络读取数据。   (2) 数据响...

2018-10-24 14:54:20 366

转载 学习《apache源代码全景分析》之网络连接部分摘录

1.MPM框架负责多进程或多线程的并发处理,它侦听指定的套接字,一旦客户端请求到来,它将立即接受该请求,并创建相应的连接。而一旦连接建立完毕,核心将从该连接上读取请求的数据。  整个HTTP连接处理的过程可以分为下面几大部分:   (1) 接收连接   (2) 创建连接   (3) 连接预处理   (4) 请求处理   (5) 清除连接和关闭连接2.等待连接的过程就...

2018-10-24 14:51:35 418

转载 学习《apache源代码全景分析》之多任务并发处理摘录

1.如果要写服务器程序,按照正常的思路,通常主程序在进行了必要的准备工作后会调用诸如fork之类的函数产生一个新的进程或线程,然后由子进程进行并发处理。每个进程侦听某个端口,然后接受网络连接,并处理这些了连接上的请求数据。2.当主程序调用了函数ap_mpm_run之后,整个主程序就算结束了。然后进入多进程并发处理状态,为了并发处理客户端请求,Apache会产生多个进程,每个进程又产生一定数目的...

2018-10-24 14:47:11 683

转载 学习《apache源代码全景分析》之模块化体系结构摘录

1.Apache1.3系列的模块结构如下: Apache 2.0模块构成部分如下:  2.Apache核心和模块的交互示意图:     核心模块必须与非核心模块进行交互,目前有两种交互方式.   (1) 核心模块通过调用注册的模块处理句柄实现与模块的交互。   (2) 非核心模块也可以调用各种API服务和修改各种重要的数据结构。3.挂钩可以理解就是可以映射为Ap...

2018-10-24 14:42:20 365

转载 v8引擎详解

前言  JavaScript绝对是最火的编程语言之一,一直具有很大的用户群,随着在服务端的使用(NodeJs),更是爆发了极强的生命力。编程语言分为编译型语言和解释型语言两类,编译型语言在执行之前要先进行完全编译,而解释型语言一边编译一边执行,很明显解释型语言的执行速度是慢于编译型语言的,而JavaScript就是一种解释型脚本语言,支持动态类型、弱类型、基于原型的语言,内置支持类型。鉴于Ja...

2018-10-24 11:01:02 2764

转载 C语言宏与单井号(#)和双井号(##)

C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译器概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) / do { ...

2018-10-22 13:24:32 731

转载 学习《apache源代码全景分析》之DSO概念

        DSO的产生当然离不开操作系统的支持。目前不管是UNIX还是Linux,大多都提供了对动态共享对象或动态链接库进行加载和卸载的机制。加载的方法通常有两种:其一是在可执行文件启动时由系统程序ld.so自动加载;其二是在执行程序过程中手工通过Unix提供的动态链接库加载接口进行加载。1.Linux下的DSO     Linux下的DSO操作函数主要包括以下几个:    vo...

2018-10-22 11:56:48 494

转载 qsort()函数详解

一、写在开头    1.1 本节内容       学习C语言中的qsort()函数。二、qsort()    2.1 函数原型void qsort( void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));       函数功能:q...

2018-10-22 10:19:28 3068 1

原创 《Cocos2d-x3.x游戏开发之旅》学习

1.addEventListenerWidthSceneGraphPriority函数,这个函数的两个参数作用如下:   EventListener *listener:事件监听对象,当触摸事件发生时通过它来回调;    Node *node:绑定的对象,当node对象被释放时,监听事件的注册也会被取消,同时,有多个触摸事件发生时(比如几个按钮叠加在一起),会根据node层次优先回调(越在上...

2018-10-21 12:48:23 2539

转载 《深入理解Nginx 模块开发与架构解析》之高级数据结构摘录

一、ngx_queue_t双向链表  1.ngx_queue_t容器的优势在于:     1) 实现了排序功能;     2) 它非常轻量级,是一个纯粹的双向链表。它不负责链表元素所占内存的分配,与Nginx封装的ngx_pool_t内存池完全无关。     3) 支持两个链表间的合并。typedef struct ngx_queue_s ngx_queue_t;stru...

2018-10-19 12:22:10 343

转载 mktime()函数使用

原型:time_t mktime(struct tm *)其中的tm结构体定义如下:struct tm { int tm_sec;/* 秒 - 取值区间为[0,59] */ int tm_min; /* 分 - 取值区间为[0,59] */ int tm_hour; /* 时 - 取值区间为[0,23] */ int tm_mday; /* 一个月中的日期...

2018-10-17 15:19:56 15878 3

转载 使用gethostname()函数和gethostbyname()函数获取主机相关信息

gethostname():返回本地主机的标准主机名原型如下:#include <unistd.h>int gethostname(char *name, size_t len);参数说明:这个函数需要两个参数: 接收缓冲区name,其长度必须为len字节或是更长,存获得的主机名。 接收缓冲区name的最大长度:返回值: 如果函数成功,则返回0。如果发生错...

2018-10-17 12:22:39 18067

转载 getsockname和getpeername测试

在两台计算机上建立一个网络连接,需要五个要素:本机地址、本机端口、协议类型、远端端口、远端地址,那么如何从一个建立好的连接上获取这些信息呢?就需要用到    getsockname和getpeername这两个函数。但前提是要在建立好的连接上。作为客户端,要在正确调用connect()之后,才能使用这两个函数作为服务端,要在正确调用accept()之后,才能使用这两个函数以下为...

2018-10-17 11:51:39 996

转载 getsockopt和setsockopt函数

    在Unix网络编程中通常用到getsockopt和setsockopt两个函数来获取和设置套接口的选项。    getsockopt()函数用于获取任意类型、任意状态套接口的选项当前值,并把结果存入optval。#include <sys/socket.h>int getsockopt(int sockfd, int level, int optname, void...

2018-10-17 10:53:34 230

转载 pread介绍

1.先来介绍pread函数[root@bogon mycode]# cat test.c#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <fcntl.h>char buf[20];void testpread(int fd1){ int i;...

2018-10-17 09:59:45 6974

转载 Linux Sendfile的优势

Sendfile函数在两个文件描写叙述符之间直接传递数据(全然在内核中操作,传送),从而避免了内核缓冲区数据和用户缓冲区数据之间的拷贝,操作效率非常高,被称之为零拷贝。Sendfile函数的定义例如以下:#include <sys/sendfile.h>ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t...

2018-10-16 10:47:52 120

转载 《深入理解NGINX 模块开发与架构解析》之摘抄学习

1.基于Nginx框架开发程序有5个优势:    (1).Nginx将网络、磁盘及定时器等异步事件的驱动都做了非常好的封装,基于它开发将可以忽略这些事件处理的细节;    (2).Nginx封装了许多平台无关的接口、容器,适用于跨平台开发。    (3) 优秀的模块化设计,使得开发者可以轻易地复用各种已有的模块,其中既包括基本的读取配置、记录日志等模块,也包括处理请求的诸如HTTP.m...

2018-10-16 10:33:08 573

转载 Round-Robin负载均衡算法及其实现原理

轮询调度算法(Round-Robin Scheduling)轮询调度算法的原理是每一次把来自用户的请求轮询分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。算法的优点是其间接性,它无需记录当前所有连接的状态,所以它是一种无状态调度。轮询调度算法流程 假设有一组服务器N台,S = {S1, S2, ..., Sn},一个指示变量i表示上一次选择的服务器ID。...

2018-10-12 15:20:33 742

转载 pstack命令学习

pstatck命令可现实每个进程的栈跟踪。pstack命令必须由相应进程的属主或root运行。可以使用pstack来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的PID.命令软件包下载地址:https://packages.debian.org/sid/pstack实例:pstree以树结构显示进程pstree -p work | grep adsshd(2266...

2018-10-11 11:57:43 1223

转载 LINUX ltrace命令-用来跟踪进程调用库函数的情况学习

参考链接:http://www.bluestep.cc/linux-ltrace%E5%91%BD%E4%BB%A4-%E7%94%A8%E6%9D%A5%E8%B7%9F%E8%B8%AA%E8%BF%9B%E7%A8%8B%E8%B0%83%E7%94%A8%E5%BA%93%E5%87%BD%E6%95%B0%E7%9A%84%E6%83%85%E5%86%B5/ltrace命令是用...

2018-10-11 11:44:49 630

转载 strace用法学习

一、strace是什么?    按照strace官网的描述,strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。strace底层使用内核的ptrace特性来实现其功能。在运维的日常工作中,故障处理和问题诊断是个主要的内容,也是必备的技能。strace作为一种动态跟踪工具,能够帮助运维高效地...

2018-10-11 11:28:16 321

原创 《深入剖析NGINX》学习记录

1.HTTP服务基本特性  处理静态页面请求;   处理index首页请求   对请求目录进行列表显示;   支持多进程间的负载均衡;   对打开文件描述符进行缓存(提高性能);   对反向代理进行缓存(加速);   支持gzip、ranges、chunked、XSLT、SSI以及图像缩放;   支持SSL、TLS SNI2.HTTP服务高级特性    基于名称的虚拟主机;...

2018-10-10 17:50:41 1291 1

原创 getpwnam学习

来自百度百科getpwnam函数功能是获取用户登录相关信息。原型定义:若成功,返回指针;若出错或者达到文件尾端,返回NULL。表头文件:#include <pwd.h>#include <sys/types.h>信息存贮在如下的结构体之中struct passwd { char *pw_name; /* Username */ ...

2018-10-10 16:10:44 3413

2路继电器控制板

2路继电器控制板,描述了继电器的原理图。

2015-07-22

空空如也

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

TA关注的人

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