自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (2)
  • 收藏
  • 关注

转载 RTP的使用

ortp是RTP协议的一个具体实现,最近在做的视频会议重也用到了这个协议栈。需要将数据通过ortp协议进行传输后在处理。做的过程中碰到了一个问题,视频数据通过ortp后,会出现花屏的现象。1:我们的视频数据采用H264进行压缩。基于h264的特性,如果物体的运动的话,视频数据就会增减(比起物体静止的时候)。这个时候一帧的视频数据就会由多个packet组成。2:在使用ortp进行传输时为了方...

2019-03-08 08:53:42 925

转载 OpenCV3.3+VS2013 环境配置

操作环境:         Windows7_x64 + Visual Studio 2013 (亲测Win10系统和VS2015也是可以的)编译配置工具:        CMake(利用CMake对OpenCV源码进行编译生成VS的64位解决方案)第一步:下载并安装CMake        直接登录CMake官网下载Windows64位安装包          链接:ht...

2018-08-10 10:41:37 782

转载 std::string用法总结

在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便:string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化string类的字符操作:const char &operator[](int n)...

2018-07-11 15:51:47 765

原创 ATS大文件写:

大文件写:HttpSM::set_next_stateHttpSM::do_cache_prepare_writeHttpSM::do_cache_prepare_actionHttpCacheSM::open_write1. CacheProcessor::open_write --> 22. Cache::open_write --> 3 //new_Cach...

2017-05-23 18:04:37 469

原创 ATS大文件读:

大文件读:HttpSM::set_next_stateHttpSM::do_cache_lookup_and_readHttpCacheSM::open_readHttpCacheSM::do_cache_open_read1. CacheProcessor::open_read --> 22. Cache::open_read --> 3 //new_Cach...

2017-05-23 18:02:26 509

原创 ATS小文件写:

小文件写:HttpSM::set_next_stateHttpSM::do_cache_prepare_writeHttpSM::do_cache_prepare_actionHttpCacheSM::open_write1. CacheProcessor::open_write 2. Cache::open_write //new_CacheVC3. CacheVC::c...

2017-05-23 18:00:11 391

原创 ATS小文件读:

小文件读:HttpSM::set_next_stateHttpSM::do_cache_lookup_and_readHttpCacheSM::open_readHttpCacheSM::do_cache_open_read1. CacheProcessor::open_read 2. Cache::open_read //new_CacheVC3. CacheVC::do...

2017-05-23 17:57:31 430

原创 ATS磁盘读取初始化流程:

ATS磁盘读取初始化流程:CacheProcessor::start CacheProcessor::start_internal // traffic server runningCacheDisk::open //一个磁盘调用一次 SET_HANDLER(&CacheDisk::openStart);CacheDisk::openStart SET

2017-05-23 17:52:13 823

原创 c-ares DNS域名异步解析成IP

//build1: g++ dns_parse_cares.cc /usr/local/lib/libcares.a -lrt -o test //build2: g++ dns_parse_cares.cc -lcares -lrt -o test#include #include #include #include #include #include #include

2017-05-23 12:56:17 3916

转载 trafficserver的DNS初始化源码分析一

原文: http://chenpiaoping.blog.51cto.com/5631143/1364486SplitDNS功能:SplitDNS可以配置ats使用多个DNS服务器,这样是处于安全考虑的。配置:(1)开启splitdns,即proxy.config.dns.splitDNS.enabled的值设置为1(2)在splitdns.config

2017-05-06 17:41:53 492

转载 Web Cache替换算法分析(二)

原文: http://blog.chinaunix.net/uid-23242010-id-147989.html       本章主要描述TrafficServer中ram cache设计方案。TrafficServer在内存中维护了一个ram cache,用来保存用户频繁访问的热点文件或数据,以避免磁盘查找慢的问题。TS在刚开源的时候,ram cache的设计只是一个简单的LRU算

2017-05-06 17:01:02 572

转载 Web Cache替换算法分析(一)

原文: http://blog.chinaunix.net/uid-23242010-id-147401.html     对于一个高性能服务器软件来说,cache层的设计好坏直接影响着系统性能。      web caching与传统操作系统中cache的区别:      (1)HTTP协议支持整个文件的传输,因此一个web cache只有缓存了整个文件才能满足用户的请求。

2017-05-06 16:59:37 661

转载 异步事件模型

原文: http://blog.chinaunix.net/uid-23242010-id-94816.html   traffic server设计了一个基于事件驱动的多线程模型,通过EventSystem+Continuation完成了所有函数的异步调度。下图摘自apache提供的traffic server开发文档,给出了事件模型的结构图。    Even

2017-05-06 16:57:23 370

转载 eventsystem源码分析 多线程框架

原文:http://blog.chinaunix.net/uid-23242010-id-2239465.html           多线程框架需要完成的任务            (1) 作为一个服务器,它需要负责listen一个或多个端口,当有用户请求过来时,需要accept建立连接,完成连接后,需要监听每个建立好连接的socket是否可读或者可写。如果用户请求的

2017-05-06 16:31:59 253

转载 cache源码分析四 初始化与元数据同步

原文:http://blog.chinaunix.net/uid-23242010-id-2953692.html         之前我们讨论过,cache的索引在trafficserver启动时,会从磁盘加载到内存中。这里有两个问题。          问题1:内存中的索引被更新后,与磁盘中保存的部分已经不一致,我们称之为脏了,这时需要将索引写回至磁盘中去。   

2017-05-06 16:30:45 250

转载 cache源码分析三 evacuate机制的实现

原文:http://blog.chinaunix.net/uid-23242010-id-2915354.html                之前分析过,trafficserver的cache机制本质上是将cache视为一个ring buffer,循环顺序向cache写入内容。同时我们也说过,trafficserver对大文件与小文件的存储方式是不相同的。对于小文件,head与bo

2017-05-06 16:29:26 722

转载 cache源码分析二 读写逻辑分析

原文: http://blog.chinaunix.net/uid-23242010-id-2183028.html          第一章指出,ts对大文件与小文件的存储方式略有不同。对于小文件,使用一个Doc保存所有的内容,而对于一个大文件,会使用一个Doc保存head部分,并将body分为多个fragment,每个fragment使用一个Doc来保存。通过将大文件分为多个fra

2017-05-06 16:28:03 288

转载 cache源码分析一 存储机制分析

原文: http://blog.chinaunix.net/uid-23242010-id-2182847.html trafficserver的cache层包含两层,它在内存中维护了一个ram cache,缓存热点数据,该层的具体描述见这里,与此同时ts提供了磁盘一级的存储。对比了一下trafficserver的cache存储系统与squid的coss文件系统,不难发

2017-05-06 16:25:53 310

转载 boost.asio系列——Timer

同步Timerasio中提供的timer名为deadline_timer,它提供了超时计时的功能。首先以一个最简单的同步Timer为例来演示如何使用它。    #include     #include     int main()    {        boost::asio::io_service io;        boost::asio:

2017-01-17 10:46:47 506

转载 boost.asio系列——io_service

IO模型io_service对象是asio框架中的调度器,所有异步io事件都是通过它来分发处理的(io对象的构造函数中都需要传入一个io_service对象)。    asio::io_service io_service;    asio::ip::tcp::socket socket(io_service);在asio框架中,同步的io主要流程如下:    

2017-01-17 10:37:07 248

转载 boost::asio::io_service和io_service::work和boost::thread_group配合使用

boost::asio::io_service和io_service::work和boost::thread_group配合使用[cpp] view plain copy //注释中的Page是指:Boost程序库完全开发指南(第三版)  #include   //Page542: 在头文件前定义此宏,它就会向标准流cerr输出运行日

2017-01-17 10:29:04 1473

转载 Boost::Thread使用示例

源地址:http://blog.csdn.net/zhuxiaoyang2000/article/details/6588031/ Boost::Thread的实现总体上是比较简单的,前面已经说过,thread只是一个跨平台的线程封装库,其中按照所使用的线程选项的不同,分别决定使用Windows线程API,pThread,或Mac平台的thread实现。以下只讨论Windows

2017-01-16 17:55:03 2295

原创 parent proxy 源码学习

基于ATS7.0.0代码研究(与ATS6.1.1相差不大)notes:1. ParentRecord 与 pRecord : ParentRecord 对应一条 parent.config 记录, pRecord 对应一个回源IP或域名, 即 parent 或 secondary_parent 都可以配置多个下一跳的IP或域名,

2017-01-11 15:59:04 941

原创 congestion源码解读

基于ATS6.1.1代码研究变量和函数解释t_state 中与拥塞控制相关的参数// congestion controlCongestionEntry *pCongestionEntry;StateMachineAction_t congest_saved_next_action; //下一状态保存,有 HttpTransact::STATE_MACHINE_ACTI

2017-01-11 15:54:26 784

转载 Linux下多个进程或线程同时对一个文件进行写操作

Linux下多个进程或线程同时对一个文件进行写操作 Linux下多个进程或线程同时对一个文件进行写操作,如何解决冲突?使用flock(锁定文件或解除锁定),简单可行!先介绍一下flock函数吧头文件 #include定义函数 int flock(int fd,int operation);函数说明 flock()会依参数operation所指定的方式对参

2017-01-11 15:47:56 6453

转载 typedef和define的作用域

typedef和define的作用域 typedef:如果放在所有函数之外,它的作用域就是从它定义开始直到文件尾;如果放在某个函数内,定义域就是从定义开始直到该函数结尾;#define:不管是在某个函数内,还是在所有函数之外,作用域都是从定义开始直到整个文件结尾。如:typedef …//此处开始到文件结尾#define

2017-01-11 15:46:05 1179

转载 C++析构函数必须要用virtual修饰的原因

先举例:#include using namespace std;class Father{public:    int m_fMember;    Father(){m_fMember=1;}    ~Father(){cout};class Child : public Father{public:    int m_cMember;

2017-01-11 15:41:18 1907

转载 C++成员变量、构造函数的初始化顺序

一、C++成员变量初始化1、普通的变量:一般不考虑啥效率的情况下 可以在构造函数中进行赋值。考虑一下效率的可以再构造函数的初始化列表中进行2、static 静态变量(本地化数据和代码范围):static变量属于类所有,而不属于类的对象,因此不管类被实例化了多少个对象,该变量都只有一个。在这种性质上理解,有点类似于全局变量的唯一性。函数体内static变量的作用范围时该函数体,不同于

2017-01-11 15:34:42 533

转载 C++ JsonCpp 使用(完整代码下载)

前言JSON是一个轻量级的数据定义格式,比起XML易学易用,而扩展功能不比XML差多少,用之进行数据交换是一个很好的选择JSON的全称为:JavaScript Object Notation ,顾名思义,JSON是用于标记javascript对象的,详情参考http://www.json.org/。本文选择第三方库JsonCpp来解析json,JsonCpp是比较出名的c++解析库

2015-09-29 10:56:59 585

转载 log4cplus 使用方法 配置

http://my.oschina.net/lovecxx/blog/185951目录[-]1.  Log4cplus简介2.  安装方法2.1.          linux2.2.          win3.  主要类说明4.  基本使用4.1.          基本步骤4.2.          使用示例4.2.

2015-09-25 14:32:47 9918 4

转载 Linux动态链接库的使用

http://www.cnblogs.com/Anker/p/3527677.htmlLinux动态链接库的使用1、前言  在实际开发过程中,各个模块之间会涉及到一些通用的功能,比如读写文件,查找、排序。为了减少代码的冗余,提高代码的质量,可以将这些通用的部分提取出来,做出公共的模块库。通过动态链接库可以实现多个模块之间共享公共的函数。之前看《程序员的自

2015-08-13 09:42:55 228

转载 HTTP Debugger Pro v6.4 + Keygen For HTTP Debugger Pro v6.x

官网下载最新原版(目前为v6.4)HTTP Debugger Pro v6.4再下载新版注册机即可HTTP Debugger Pro v6.x Keygen.zipHTTP Debugger Pro v6.4 : HTTP and SSL / HTTPS Monitoring and Analyzing ToolHTTP Debugger Pro v

2015-08-12 09:57:19 551

转载 const char* & NOT char* const &

原文:http://blog.csdn.net/ftofficer/article/details/261193今天在BBS VC版上看到有个同学这么一个帖子,说VC在编译模板时有BUG,他贴的测试代码如下:// TemplateBug.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h"   // 先定义一个接口 temp

2015-06-18 15:46:35 305

转载 http协议包:请求包和应答包

1 HTTP请求包  HTTP请求包(GET、POST等请求方法)由三个部分构成,分别是:方法-URI-协议/版本,请求头,请求正文。下面是一个HTTP请求包(GET)的例子:   Socket socket    = new Socket("127.0.0.1", 8080);       OutputStream os  = socket.getOutputStream

2015-06-12 18:07:34 1609

转载 HTTP请求、响应报文格式

HTTP请求报文格式:HTTP请求报文主要由请求行、请求头部、空行以及请求正文4部分组成1,请求行由3部分组成,分别为:请求方式,URI(注意这里不是URL)以及协议版本组成,之间由空格分隔请求方法主要包括GET、POST等;常见的协议版本有HTTP/1.12,请求头部包含很多有关客户端环境以及请求正文的有用信息请求头部由“关键字/值”对组成,每行一对,关键字和值之

2015-06-12 18:06:31 581

转载 mysqld和mysqld_safe 有什么区别

mysqld_safe  在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。本节后面列出了NetWare的特定行为。  注释:为了保持同旧版本MySQL的向后兼容性,MySQL二进制分发版仍然包括safe_mysqld作为mysqld_safe的符号链接。

2015-05-19 10:50:00 558

转载 自助Linux之问题诊断工具strace

http://www.cnblogs.com/bangerlee/archive/2012/02/20/2356818.html引言“Oops,系统挂死了..."“Oops,程序崩溃了..."“Oops,命令执行报错..." 对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通过查看相关日志,维护人员就能很快

2015-05-19 10:21:15 255

转载 [译]const T vs. T const ——Dan Saks 【翻译】

http://m.blog.csdn.net/blog/bianbian17556231/5398039写程序的过程中遇到了const的用法,上网搜了点资料,都说Dan Saks的这篇文章讲的比较全面,就打算好好看看,可惜是英文的,因此决定自己来翻译一遍,为了更好地理解const的同时也能复习一下英语。原文可以参见:http://blog.csdn.net/bianbian17

2015-05-19 08:59:10 452 1

转载 RPM详解

RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是

2015-05-18 17:34:03 594

转载 infobright安装与配置

Infobright是基于专利技术的列式数据库,一个基于MySQL开发的开源数据仓库(Data Warehouse)软件,可作为MySQL的一个存储引擎来使用,SELECT查询与普通MySQL无区别。一、几大优点:1、高压缩比率,平均压缩比可达10:1。(经测试,我们的1500万条697M日志数据压缩比例为6:1,压缩后数据大小仅为114M)2、列存储,即使数据量十分巨大,查询

2015-05-18 14:03:03 1963

SIP的UA客户端和服务器(C++)

ua_client.cpp 和 ua_server.cpp 示例,依赖libeXosip2库

2018-07-27

wav文件解析及双声道转单声道(C++)

先解析wav文件格式,再分别将双声道文件提取成两个单声道文件,程序可以直接编译运行

2018-07-27

空空如也

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

TA关注的人

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