自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (10)
  • 收藏
  • 关注

原创 排序算法

class Sort {public: void PrintSort(vector<int>vec,string s) { cout<<s<<endl; for(int i=0;i<vec.size();i++) { cout<<vec[i]<<" "; } cout<<endl; } void BubblingSo.

2020-05-13 22:23:45 172

原创 Linux内核设计与实现读书笔记一:操作系统与内核

1、Unix强大的原因 a:Unix很简洁,仅仅提供几百个系统调用接口; b:所有东西都被看成文件对待;这种抽象使得对数据和对设备都通过一套系统调用来操作; c:使用C语言编写,易于移植; d:进程创建迅速; e:简单稳定的进程间通信元语。2、操作系统 操作系统是指在整个系统中负责完成最基本功能和系统管理的那些部分(内核、设备驱动...

2019-04-28 15:37:55 334

原创 CDN技术详解之集群服务与负载均衡技术

大纲集群技术基本概念集群分类集群系统结构CDN负载均衡集群Cache集群协同交互方法基本概念ICPHTCPCache DigestCache Pre-fillingCARP优势负载均衡技术的实现含义负载均衡关键技术负载均衡调度算法会...

2019-03-06 20:39:54 397

原创 CDN技术详解之内容缓存原理及实现

背景工作方式和设计要求客户端与服务器交互过程中的网元Web Cache 代理模式正向代理反向代理透明代理Web Cache实现基础Web的工作机制HTTP协议缓存技术Web Cache技术实现关键点参考CDN技术详解...

2019-03-01 11:27:25 2935

原创 CDN技术详解之系统架构

功能架构1、分发系统2、负载均衡系统3、运营管理系统部署架构CDN系统分类参考CDN技术详解

2019-02-26 13:48:45 836

原创 CDN技术详解之引言

影响互联网传输因素基本工作过程DNS解析,最终指向CDN专用的DNS服务器。 返回CDN全局负载均衡设备的IP地址给用户。 用户发送请求到CDN全局负载均衡设备。 根据用户的IP地址已经请求内容,选择合适的区域负载设备并用户的请求转发给它。 区域负载设备会选择一台合适的CDN缓存服务器,并返回IP地址。 CDN缓存服务器IP地址返回给用户。 用户向CDN缓存服务器发送请...

2019-02-25 20:30:25 234

原创 HTTPDNS

2019-01-10 16:04:38 869

原创 DNS

2019-01-10 09:12:23 98

原创 win10+Ubuntu16.04双系统安装以及可能的问题

先说说遇到的问题:1、UltraISO版本过低导致打开Ubuntu16.04时,只有一个EFI文件,这时候,换一个版本高一点的就OK。2、当安装完成后,发现没有Ubuntu的启动项,直接进入win10,此时需要将刚才Ubuntu的启动U盘插入电脑,按安装Ubuntu同样的步骤,选择不安装进入Ubuntu,不安装Ubuntu选项。然后$ sudo su# sudo add-apt-r...

2018-12-09 11:27:11 136

原创 Ubuntu上配置Samba与window上共享文件夹

1、Ubuntu上安装配置Sambasudo apt-get install samba 配置:[share]      path = /home/ros/shareForlder //要共享的文件夹路径     valid users = ros //用户名    available = yes      browseable = yes      writable =...

2018-12-07 18:32:22 135

原创 分布式系统里得数据分片

数据分片考虑得问题      ① 具体如何划分原始数据集?      ② 当原问题的规模变大的时候,能否通过增加节点来动态适应?      ③ 当某个节点故障的时候,能否将该节点上的任务均衡的分摊到其他节点?      ④ 对于可修改的数据(比如数据库数据),如果某节点数据量变大,能否以及如何将部分数据迁移到其他负载较小的节点,    及达到动态均衡的效果?      ⑤ 元数据的管理...

2018-11-30 21:43:31 258

原创 音视频---SDL安装

执行这两个命令就可以了sudo apt-get install libsdl2-2.0sudo apt-get install libsdl2-dev引用SDL2库编译自己的程序gcc -o myprogram myprogram.c `sdl2-config --cflags --libs` 

2018-11-29 21:16:38 121

原创 FFmpeg解码视频并保存为图片

1、多媒体文件的读取    一个多媒体文件包含有多个流(视频流 video stream,音频流 audio stream,字幕等);流是一种抽象的概念,表示一连串的数据元素;    流中的数据元素称为帧Frame。也就是说多媒体文件中,主要有两种数据:流Stream 及其数据元素 帧Frame,在FFmpeg自然有与这两种数据相对应的抽象:AVStream和AVPacket。2、FFm...

2018-11-27 21:00:57 2171 3

原创 ffmpeg安装及在QtCreator使用

 1、安装参考   https://blog.csdn.net/qq_38631503/article/details/800071282、打开QtCreator,新建工程为纯C++工程3、将安装路径里的include和lib拷贝到工程文件中的ffmepg文件夹中4、Qt Creator中修改工程配置文件 testFFmpeg.pro:unix:!macx: LIBS +...

2018-11-27 11:34:51 997

原创 音视频基础

1、带宽:每秒传输的数据量(bit/s)2、H.264的优势低码率(Low Bit Rate):和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。 高质量的图像:H.264能提供连续、流畅的高质量图像(DVD质量)。 容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工...

2018-11-27 10:47:26 116

原创 x264在Ubuntu上编译步骤

1、下载资源git clone http://git.videolan.org/git/x264.git2、进入目录直接运行./configure如果出现nasm最低版本,则在nasm下载,得到nasm,解压,进入nasm目录:./configure --prefix=/usr makesudo make install3、安装打包makemake i...

2018-11-22 17:05:28 1260

原创 C/C++积累

1、C库函数:calloc()C 库函数 void *calloc(size_t nitems, size_t size) 分配所需的内存空间,并返回一个指向它的指针。malloc 和 calloc 之间的不同点是,malloc 不会设置内存为零,而 calloc 会设置分配的内存为零。void *calloc(size_t nitems, size_t size)nitems --...

2018-11-22 09:02:05 111

转载 YUV和RGB32

YUV 4:4:4采样,每一个Y对应一组UV分量。 YUV 4:2:2采样,每两个Y共用一组UV分量。  YUV 4:2:0采样,每四个Y共用一组UV分量。YUV它将亮度信息(Y)与色彩信息(UV)分离由存储模式可知,将Y、U、V分量分别打包,依次存储。其每一个像素点的YUV数据提取遵循YUV420格式的提取方式,即4个Y分量共用一 组UV。 RGB与YUV的转化公式...

2018-11-21 11:02:50 979

转载 V4L学习资料链接

v4l2的学习建议和流程解析1、调用V4L的流程打开设备-&gt; 检查和设置设备属性-&gt; 设置帧格式-&gt; 设置一种输入输出方法(缓冲 区管理)-&gt; 循环获取数据-&gt; 关闭设备。 2、检查和设置设备属性struct v4l2_capability capability;int ret = ioctl(fd, VIDIOC_QUERYCAP, &amp...

2018-11-20 09:45:09 244

转载 流媒体格式---FLV(flash video)

目前主流的视频网站如优酷网,土豆网,乐视网等网站无一例外地使用了FLV格式。1、格式FLV由Flv Header和Flv Body组成,而Flv Body由一系列的 Tag组成,每一个Tag前面都有一个Previous Tag Size表示前一个Tag的长度。Tag的类型有音频、视频、Script三种。对于普通的音视频来说,Tag header的长度是11 字节,包含:(1)t...

2018-11-18 16:38:18 1156

转载 getopt----解析main函数中的参数

   转自------  Linux下getopt()函数的简单使用  "a:b:cd::e",这就是一个选项字符串。对应到命令行就是-a ,-b ,-c ,-d, -e 。冒号又是什么呢? 冒号表示参数,一个冒号就表示这个选项后面必须带有参数(没有带参数会报错哦),但是这个参数可以和选项连在一起写,也可以用空格隔开,比如-a123 和-a   123(中间有空格) 都表示123是-a的参数;...

2018-11-12 11:10:06 234

原创 读Muduo源码笔记---8(定时器)

muduo的定时器由三个类实现,TimerId、Timer、TimerQueue。1、采用timer_create函数得到定时器对象      timerfd_create把时间变成了一个文件描述符,该“文件”在定时器超时的那一刻变得可读,这样就能很方便的融入到select/poll框架中,用统一的方式来处理I/O和超时事件,这正是Reactor模式的长处。2、Timer类    ...

2018-11-01 09:10:36 217

原创 读Muduo源码笔记---7(Protobuf)

1、概念   Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。    将 程序数据转化成能被存储并传输的格式的过程被称为“序列化”(Serialization),而它的逆过程则可被称为“反序列化” (Dese...

2018-10-30 15:06:55 568 1

原创 读Muduo源码笔记---6(Buffer:应用层缓冲区)

1、存在的原因TCP是一个无边界的字节流协议,接收方必须要处理“收到的数据尚不构成一条完整的消息”和“一次收到两条消息的数据”等等情况。这些情况被称为粘包问题。考虑一下场景:发送方发送两条5k字节的数据,接收方收到的情况可能是如下情况:分两次收,一次5k,第二次5k 分两次收,一次2k,第二次8k 一次收10k 其他的可能因此,必须在应用层对粘包问题进行处理,需要在应用层定义一个缓...

2018-10-24 10:43:35 274

原创 读Muduo源码笔记---5(NTP协议)

1、概念NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。2、原理   客户机首先向服务器发送一个NTP 包,其中包含了该包离开客户机的时间戳T1,当服务器接收到该包时,依次填入包到达的时间戳T2、包离开的时间戳T3,然后立即把包返回给客户机。客户机在接收到响应包时,记录包返回的时间戳T4。客户机用上述4个时间参数就能够计算出...

2018-10-22 14:46:02 189

原创 读Muduo源码笔记---4(TCP自连接)

1、问题原因  svr挂掉了,端口释放了,cli去connect这个目的端口的时候正好选择了这个端口作为源端口,此时端口没人用,使用是合法的。于是自连接形成了。 就是出现源ip和源端口通目的ip和目的端口完全相同的情况,也就是在服务端没有启动,客户端也可以连接成功,但会造成服务端无法启动。2、tcp连接分析   要建立一个tcp连接,首先svr要在b端口上listen,cli再使用...

2018-10-22 10:26:50 261

原创 读Muduo源码笔记---3(ttcp分析)

1、ttcp作用:检测TCP吞吐量2、ttcp协议:3、一次写一定长度的数据static int write_n(int sockfd, const void* buf, int length){ int written = 0; while (written &lt; length) { ssize_t nw = ::write(sockfd, stati...

2018-10-19 15:52:54 744

原创 读Muduo源码笔记---2

1、线程共享地址空间,从而可以高效地共享数据。2、非阻塞IO+IO多路复用模型 while(!done) { int timeout_ms=max(1000,getNextTimedCallback()); int retval=::poll(fds,nfds,timeout_ms); if(retval&lt;0) { /...

2018-10-18 09:09:41 137

原创 读Muduo源码笔记---1

对象销毁时出现的竞态条件:析构对象时,其他线程是否正在执行该对象的成员函数; 在执行成员函数期间,对象不会被其他线程析构; 在调用成员函数之前,如何确定对象还活着。线程安全的类:多线程访问时,变现出正确的行为; 无论操作系统如何调度这些线程,以及线程的执行顺序; 调用端代码不需要额外的同步。简单的线程安全类class Counter{  public:    Cou...

2018-10-16 17:32:13 218

转载 RARP

点击打开链接

2018-05-02 22:08:29 897

原创 TCP/IP学习笔记之网际层

点击打开链接大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。1、IP首部总长度字段是指整个IP数据报的长度,以字节为单位。 IP数据报最长可达65535字节 。TTL生存时间字段设置了数据报可以经过的最多路由器数。由源主机设置,经过一个处理它的路由器时减一,当为0时数据报被丢弃,并发送ICMP报文通知源主机。...

2018-05-02 09:44:33 181

原创 TCP/IP学习笔记之链路层

1、作用链路层主要有三个目的: (1)为I P模块发送和接收I P数据报;(2)为A R P模块发送 A R P请求和接收 A R P应答;(3)为R A R P发送R A R P请求和接收R A R P应答。  2、帧格式、3、环回接口   IP:127.0.0.1  处理发送给自己的数据报以允许运行在同一台主机上的客户程序和服务器程序通TCP/IP进行通信。一个传给环回接口的IP数据报不能在任...

2018-04-28 08:56:44 139

转载 四种类型转换(cast)的关键字 详解 及 代码

点击打开链接reinterpret_cast用在任意指针(或引用)类型之间的转换;以及指针与足够大的整数类型之间的转换;从整数类型(包括枚举类型)到指针类型,无视大小。...

2018-04-24 08:29:25 922

转载 Visual Studio中检测内存泄漏的方法

Visual Studio中检测内存泄漏的方法#include &lt;iostream&gt; //可以定位到发生内存泄露 所在的文件和具体那一行,用于检测 malloc 分配的内存 #define _CRTDBG_MAP_ALLOC #include &lt;stdlib.h&gt; #include &lt;crtdbg.h&gt; //把分配内存的信息保存...

2018-04-23 21:36:23 686

转载 “浅拷贝”与“深拷贝”

点击打开链接

2018-04-23 20:26:22 78

转载 c++之this指针详解

c++之this指针详解

2018-04-23 20:06:14 86

原创 Shell学习之练习

1、简单计算器#! /bin/sh while [ : ];do read a op b case $op in "+") c=$[a+b];; "-") c=$[a-b];; "*") c=$[a*b];; "/") c=$[a/b];; *) c=0;; esac echo "$a $op $b = $c"...

2018-04-22 15:41:18 449

原创 Shell学习之正则表达式-----find

find常用参数:find: 1. -name find ./ -name *.mp3 2. -type find ./ -type f/d/p/c/b/s/l 3. -size 默认单位:512B--&gt;0.5K--&gt;一个扇区大小 -M:不能m  find /home/itcast -size +3M -size -7M -k:不能K  find /home/itcast ...

2018-04-22 14:04:49 2422

原创 Shell学习之正则表达式-----grep

grep1. 作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符...

2018-04-22 13:50:57 138

原创 正则表达式之C程序中使用正则

POSIX规定了正则表达式的C语言库函数,详见regex(3)。我们已经学习了很多C语言库函数的用法,读者应该具备自己看懂man手册的能力了。本章介绍了正则表达式在grep、sed、awk中的用法,学习要能够举一反三,请读者根据regex(3)自己总结正则表达式在C语言中的用法,写一些简单的程序,例如验证用户输入的IP地址或email地址格式是否正确。C语言处理正则表达式常用的函数有regcomp...

2018-04-22 13:19:32 463

httpDNS思维导图

传统的基于 UDP 协议的公共 DNS 服务极易发生 DNS 劫持,从而造成安全问题。 利用 HTTP 协议与 DNS 服务器交互,代替了传统的基于 UDP 协议的 DNS 交互,绕开了运营商的 Local DNS,有效防止了域名劫持,提高域名解析效率。 由于 DNS 服务器端获取的是真实客户端 IP 而非 Local DNS 的 IP,能够精确定位客户端地理位置、运营商信息,从而有效改进调度精确性。

2019-01-10

DNS思维导图

1、客户端发出一个DNS请求,发给本地域名服务器(网络服务商) 2、本地DNS服务器收到客户端请求,会去查找本地缓存,若找到对应域名,则返回IP地址;若未找到,则请求根DNS服务器。 3、根DNS服务器收到本地DNS服务器的请求,根据域名后缀,返回管理该后缀的顶级域DNS服务器的地址。 4、本地DNS服务器转向顶级域DNS服务器发出请求,顶级域DNS服务器会返回管理该域名的权威DNS服务器的地址。 5、本地DNS转向权威DNS服务器发送请求,权威DNS服务器查询后,返回域名对应得IP地址给本地域名服务器。 6、本地域名服务器再将IP地址返回给客户端。

2019-01-10

x264安装资源

安装和打包运行x264所需要的文件。 (1)获取源码,解压源码包 (2)进入源码目录 (3)直接运行./configure (4)make (5)make install

2018-11-22

C++面试知识点总结

个人总结的C++知识点,涵盖C++很多方面,对于C++找工作很有帮助,当然对于C++学习者,也是一个巩固的方法

2018-09-25

《Linux多线程服务端编程:使用muduo C++网络库》.(陈硕).[PDF]

《Linux多线程服务端编程:使用muduo C++网络库》.(陈硕).[PDF]

2018-07-24

Linux高性能服务器编程(带书签)

网络编程,内容详细清晰,学习网络编程的基础,提高自己能力,带完整书签

2018-07-24

PHP MYSQL web

PHP学习好书,很经典,讲的很细致。MYSQL以及web,学习不易请坚持

2018-07-18

thinkphp简单登录

thinkPHP入门项目,很简单,只适合新手,高手请绕道,大佬不小心下了,私信我,我退你积分

2018-06-29

PHP快速入门

thinkphp,快速学习入门的小例子太多了,作为入门的好例子,

2018-06-27

OSG+Qt编译说明

首先在解压后的OpenSceneGraph-3.4.0文件夹里面新建一个build文件夹,用来存放编译内容,用vs2013打开CMakeLists.txt,在里面加两行代码 SET(DESIRED_QT_VERSION "5.6.2" CACHE STRING "")   5.6.2为安装的QT的版本  SET(CMAKE_PREFIX_PATH "D:\Qt\Qt5.6.2\program\5.6\msvc2013" CACHE PATH "")  D:\Qt\Qt5.6.2\program\5.6\msvc2013 为QT的安装路径,加完保存,如下图 第二步:打开cmake软件,CMakeLists.txt文件拖到cmake界面上,选择路径 build为刚刚新建的文件夹 点击configure,选择vs2013平台,然后3rdparty的路径为你第三方库解压后的路径,在BUILD...WITH_QT和BUILD....APPLICATIONS和

2017-12-22

空空如也

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

TA关注的人

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