自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (11)
  • 收藏
  • 关注

原创 C++类的函数重载

本文讨论C++中类的函数重载。下面的一个例子#include using namespace std;class Base{public: int display(int n_count){ cout <<"display function defined in the Class Base"<<endl;

2012-12-23 12:55:02 5422 1

原创 一个C++中智能指针的设计

在C++中,智能指针是存储一些动态分配对象或者资源的类,主要用于控制资源或者动态对象的使用生存期,设计的目的如下:保证能够正确的分配和销毁动态对象或者资源,以防止内存泄露等问题。跟踪对象或者资源的使用情况。智能指针的实现一般都是使用引用计数,将一个计数器与使用的指针相关联起来,此时引用计数器跟踪该所属类有外部多少共享。因此在实现的时候,就有两个根本的部分计数表示。用于实

2012-11-27 15:58:04 1387

转载 Bloom Filter概念和原理

转载自:http://blog.csdn.net/jiaomeng/article/details/1495500         Bloom Filter(中文名称是:布隆过滤器)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元

2012-11-27 11:36:51 774

原创 assert宏的深入学习

assert宏的原型定义在头文件assert.h中,它的作用是如果宏后面的条件返回假,则终止程序的执行,该宏会调用__assert_fail函数,这个函数内部会先向stderr输出错误信息,然后调用abort函数来终止程序的执行。一,assert宏的定义如下:# define assert(expr)

2012-11-23 11:25:55 4194

原创 C++实现的命令行参数管理

在编写可运行程序时,经常需要输入除了可运行文件之外的其它的命令行参数,可以用传统的getopt函数来分析,本文基于面向对象,分析一种管理命令行参数方法 -- 来源于webrtc项目,在阅读过程中,大家分享一下。一,传统命令行分析包含头文件:#include  int getopt(int argc,char * const argv[ ],const char * optst

2012-11-20 15:34:24 5689

原创 No package 'gtk+-2.0' found的错误

在编译或者生成WebRTC工程文件时,可能会出现这样的错误No package 'gtk+-2.0' foundgyp: Call to 'pkg-config --cflags gtk+-2.0' returned exit status 1. while loading dependencies of trunk/peerconnection_all.gyp while trying t

2012-11-13 17:07:53 8284

原创 GTK安装出错

安装GTK时,在configure出现以下错误 checking for XOpenDisplay... no configure: error: *** libX11 not found. Check 'config.log' for more details.通过以下解决,虽然安装了很多东东,但还是不再出现问题了,看它安装的时候,估计就只需要一两个安装就行了。

2012-11-12 18:06:29 3615 1

翻译 WebRTC体系结构

本文是对webRTC体系结构介绍的简单翻译,原文也很简单,更多的看原文。原文地址:http://www.webrtc.org/reference/architecture       WebRTC在不需要任何插件、也不需要下载或者安装什么东西的前提下,给WEB应用开发者提供在WEB上开发功能多样的、实时多媒体应用(如视频聊天)的接口。它的目标是帮助开发者很容易的在不同的浏览器、多样

2012-11-12 13:27:20 5658

原创 webRTC源码获取

在获取源码的时候,出现了很多问题,找了很多资料,在这里总结一下。必须要安装的软件如下:SVN,这个是必须的。可以安装TortoiseSVN,找个合适的版本就可以了。下载地址:http://sourceforge.net/projects/tortoisesvn/。这个软件等下可以直接需要用到。安装msysgit,这也是一定要安装的,因为等下需要用到。下载地址:http://code

2012-11-10 15:22:38 8885 1

原创 No module named yum 错误

在centos上,yum工具是一个很好用、很强大的工具,在系统一些软件升级之后,特别是python升级之后,发现yum 不好用了。出现这样的错误提示There was a problem importing one of the Python modulesrequired to run yum. The error leading to this problem was:

2012-11-09 16:13:25 10703 3

原创 inet_ntoa在64位机器上出错

inet_ntoa用法如下:char *inet_ntoa(struct in_addr in);就是将struct in_addr结构转换为IP地址的形式,struct in_addr这个结构应该不陌生吧,它的定义如下:struct in_addr{ unsigned long s_addr;}struct sockaddr_in { short in

2012-11-07 14:12:48 8224 1

转载 linux GCC -- C程序的编译

1简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Comp

2012-10-28 12:04:29 1157

原创 指定GCC库文件路径

如果我们项目在开发的时候,引用了其它的第三方库文件,可以会在GCC编译的时候,出现找不到库文件或者其它的错误,如之前在用libosip库的时候,没有指定库的安装路径,默认安装路径是/usr/local/lib目录下。GCC在编译的时候,需要头文件和库文件进行连接,其会搜索指定的目录来查找所需要的头文件和库文件,-I 选项可以向GCC的头文件搜索路径中添加一个新的搜索目录,如:gcc sip

2012-10-26 11:37:41 5682

转载 H.264视频的RTP荷载格式

H.264视频的RTP荷载格式Status of This Memo   This document specifies an Internet standards track protocol for the   Internet community, and requests discussion and suggestions for   improvements.

2012-10-25 17:04:10 4664

转载 基于RTP协议的IP电话QoS监测及提高策略

1 引言  随着Internet和多媒体技术的飞速发展,Internet已由早期的单一数据传输网向多媒体数据(视频、音频、文本等)综合传输网发展。但Internet提供的只是尽力而为的服务,不能满足多媒体应用程序对传输延迟、包丢失、抖动控制等要求,为了能在传统的IP网上运行多媒体程序,必须考虑服务质量(Ouality of Service,QoS)。QoS可用延迟、抖动、吞吐量、丢包率

2012-10-25 10:43:48 1480

原创 查看用户登录系统的日志

有两类日志记录用户登录的行为,一是记录登录者的数据,一个是记录用户的登录时间一,记录用户登录数据        /var/log/wtmp日志文件记录用户登录的数据。但这个文件是被编码的文件,不能直接用vi、cat等命令查看,可以用last命令读取。每一次登录就会产生一条记录,包括用户名、登录端、时间跨度等信息,如下:[root@bogon ~]# lastroot pt

2012-10-24 18:01:42 7220

原创 poll调用深入解析

poll调用和select调用实现的功能一样,都是网络IO利用的一种机制。先看一下poll的调用形式一,poll调用#include int poll(struct pollfd fds[], nfds_t nfds, int timeout);struct pollfd结构如下:【在源码文件poll.h文件中】struct pollfd { int fd; shor

2012-10-23 10:50:11 19537 6

原创 内核的文件系统的注册

在linux内核中的文件管理模块中,VFS机制居功至伟,VFS是virtual file system的缩写,表示为虚拟文件系统,它可以实现在Linux操作系统中可以同时有多个不同的文件系统在工作,并且不同文件系统之间的差异性对应用层是完全透明的。VFS本身并不是一种技术,而是多种技术手段和数据结构的集合,比如对进程抽象文件管理,如果将系统文件管理转换成对文件外存的块管理,如何加快对文件的操作,诸

2012-10-22 11:59:53 2267

转载 tcpdump用法详解

一,命令行格式tcpdump采用命令行方式,它的命令格式为:tcpdump [-adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名] [ -s snaplen ][ -T 类型 ] [ -w 文件名 ] [表达式 ]二,选项介绍-a    将网络地址和广播地址转变成名字;-d    将匹配信息包的代

2012-10-14 13:21:13 982

原创 TCP连接的终止过程

在建立一个连接需要客户端和服务端进行三次握手,而终止一个连接需要经过4次握手。[root@localhost /]# tcpdump -S tcp port 5210tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Et

2012-10-14 10:16:50 4077

原创 TCP连接的建立过程

TCP是一个面向连接和协议,在发送数据之前,任何交互都要基于连接才能完成。本博文讨论连接的建立过程。我在本机上打开一个端口,然后对这个端口telnet,连接之后,会将其断开,并用tcpdump对其TCP数据传输进行输出,如果对TCP首部不是特别了解,可以参考博文【TCP/IP:认识TCP】一,测试输出调用telnettelnet 192.168.1.105 5210输出如下

2012-10-14 09:49:24 8339

原创 内核的bootmem内存分配器

在内核启动期间,伙伴系统内存管理器还没有建立之前,内核此时也要分配内存以及创建一些用于建立内存管理等机制的数据结构,此时内存分配和管理就是由bootmem内存分配器来完成的。bootmem的建立要求就是简单,越简单越好,因为一旦伙伴系统建立之后,就不需要bootmem了,因此对性能和通用性等要服从一切从简的原则。在了解这个分配器之后,就会知道它真的很简单。该分配器使用一个位图来管理页,位图

2012-10-05 11:10:33 2744

原创 Apache模块开发指南-APR池

博文主要内容来自APR_POOL的帮助文档APR的意思是Apache可移植运行库,是Apache portable Run-time Libraries的缩写,主要是为编写上层的应用程序提供一个跨平台使用的接口,在早期的时候,为了应用程序在多个操作系统和平台上能够运行,应用本身需要处理各种具体的细节,针对不同的平台调用不同的处理函数等等,到了今天,这些操作平台之间不同的调用以及细节处理都有一个

2012-10-03 15:47:23 5754

原创 Apache的多处理模块MPM

本博文主要参数 Apache 2.2文档以及Apache模块开发指南Apache的整个运行可以分为两个阶段:启动阶段和运行阶段。       在启动阶段时,它以ROOT特权来启动,进行解析配置文件(一般就是httpd.conf)、加载模块和初始化一些日志文件及内存共享段等操作,在启动阶段准备结束时,apache的控制转向多处理模块MPM,此时使得MPM能够在系统特权级运行,从而管理

2012-10-03 13:57:13 4746

原创 Linux内核线程

内核线程是直接由内核来启动的进程,通常也称为守护进程,用于执行下列任务内存页很少使用时,换出。管理延时的动作。实现文件系统的事务日志。周期性的将修改的内存页与页来源块设备同步。其它。内核线程按照工作方式可以分为两种类型:线程启动后一直在等待,直到内核请求线程执行某一特定操作。线程启动后按周期性间隔运行,检测特定资源的使用等操作,在必要时采取一些行动。一,内核线程创建

2012-09-29 11:34:14 3036

原创 Linux内核中的上下文切换

在调度器选择新的可用的进程之后,不是马上可以执行运行这个进程,而是必须处理与多任务相关的一些环节,所有这些环节就组成了上下文切换。在调度函数schedule中,有这样的一个片段,这个函数主要用于在就绪队列上寻找下一个可以运行的进程。asmlinkage void __sched schedule(void){ struct rq *rq;//这表示就绪队列。....

2012-09-29 10:51:03 11580

原创 内核进程的复制

在通过fork系统调用创建进程时,最终会进入内核的do_fork函数,这个函数的大部分工作都是进程的复制,就是把大部分工作都委托给函数copy_process函数来完成。本博文主要讨论进程的复制工作。下面分成几个段,所在代码包含了整个copy_process函数一,标志检查static struct task_struct *copy_process(unsigned long c

2012-09-28 16:49:12 1874

原创 Linux进程ID的内核管理

在进程创建的时候,Linux系统会分配一个号码给当前这个进程,这个号码在进程所在的命名空间中是唯一的,但在其它的兄弟进程中,这个号码就不是唯一的了,也就是对于全局的命名空间来说,这个号不是全局唯一。这个号码就是进程的ID号,简称为PID。一,进程号数据结构表示这个PID被保存在进程的结构表示task_struct中。struct task_struct{.... pid

2012-09-28 14:08:29 4113 1

原创 Linux内核的Container_of机制

在内核的原码文件 kernel.h文件中,定义了一个宏container_of,如下:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the member. * @type: the type of the container

2012-09-28 13:33:06 3349

原创 Linux中tee命令的使用

tee命令的作用像字母T一样,很形象的表示了它的功能:它把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。如果需要在输出到文件的同时,也把信息显示到屏幕上输出,那这个命令就再合适不过了。一般格式如下:tee -a files-a选项表示追加到文件末尾。如:[root@localhost practise]# who | tee who.logroot :0

2012-09-27 22:13:01 6008

原创 日志模块的C语言实现

一,模块接口模块接口比较简单,因为主要只有写日志的操作。创建日志模块变量log_t log_new(log_type_t type,const char *file, const char *facility);log_type_t用于控制日志的类型,可以标识为系统日志,文件以及标准输出,是一个枚举类型,定义如下:typedef enum { log_STD

2012-09-27 19:03:19 13794 2

原创 C语言的HashTable简单实现

HashTable是在实际应用中很重要的一个结构,下面讨论一个简单的实现,虽然简单,但是该有的部分都还是有的。一,访问接口创建一个hashtable.hashtable hashtable_new(int size)  // size表示包含的接点个数。存入key-value至hashtable中。void hashtable_put(hashtable h,const

2012-09-27 16:35:42 17714 3

原创 Makefile.am文件的实例讲解

Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./configure的时候,就将Makefile.in文件自动生成Makefile文件了。所以Makefile.am文件是比Makefile文件更高的抽象。下面我根据自己的工作中的一些应用,来讨论Makefile.am的编

2012-09-27 11:22:00 67076 12

原创 Linux中find命令使用

Find命令的一般形式为:find pathname -options [-print -exec -ok]参数说明如下:pathname:find命令所查找的目录路径。-print:find命令将匹配的文件输出到标准输出。-exec:find命令对匹配的文件执行该参数所给出的shell命令,在这之后的命令的形式为'coomand' {} \;,这里要注意{}+空格+\;

2012-09-26 10:10:22 1725

原创 TCP/IP:认识TCP

TCP和UDP都处在网络模型的传输层,并且都使用相同的网络层,TCP提供一种面向连接的、可靠的字节流服务。TCP通过下列方式来提供可靠性:应用数据被分割成TCP认为最适合发送的数据块,由TCP传递给IP的信息单位称为报文段或者段,对于段的长度,是由一些策略决定的,和应用层相关。当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个

2012-09-25 09:05:34 2130

转载 Socket编程指南

介绍  Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Internet相关的程序,但是为你在调用 connect() 前的bind() 的结构而不知所措?等等…      好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解 C 语言并想穿过网络编程的沼泽,那么你来对地方了。 ---------------------------

2012-09-24 22:22:37 818

原创 二进制日志过滤器

二进制日志过滤器可以通过两个选项从二进制日志中过滤语句:binlog-do-db和binlog-ignore-db一,binlog-do-db使用 binlog-do-db=db_name。使用这个选项后,主服务器会判断当前的数据库(即USE选定的数据库)是否是db_name,如果是,则会将更新记录到二进制日志中。在使用之后,其它所有没有明显指定的数据库  都会被忽略。如果使用该选项,你应

2012-09-24 15:30:52 1120

原创 MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法

在应用时,经常要使用这两个函数TIMESTAMPDIFF和TIMESTAMPADD。一,TIMESTAMPDIFF语法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。说明:返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval

2012-09-24 09:55:58 97124 6

原创 获取数据库元数据

MySQL 提供几种办法以使获取关于数据库和数据库里各种对象(也就是数据库的元数据)的信息,如下:SHOW语句,如SHOW TABLES等等。INFORMATION_SCHEMA数据库里的数据表。命令行程序,如mysqlshow或者是mysqldump。一,用SHOW语句获取获取服务器所管理的数据库。SHOW DATABASES; 查看给定数据库的创

2012-09-24 08:40:19 3706

原创 浅析MySQL二进制日志

一般情况下,二进制日志更多的用于数据库的同步,因为二进制日志记录了数据库的所有改变,可以使得SLAVE都可以执行同样的更新,其实二进制日志可以对数据库作一个写入回放,所以也可以用于统计或者即时恢复等其它的目的。二进制日志仅仅包含可能改变数据库的语句,估计都很容易理解这个,但是那些还没有改变且有可能改变数据库的语句也会记录下来,比如drop table if exists或者是带有WHERE条件

2012-09-23 22:57:50 2556

命令行输入管理

输入命令行管理 :对诸如--prefix=/usr --localstatedir=/var/data等输入进行解析和管理,相比传统的getopt函数来获取命令行的方式来比,提供一种管理方式,以供参数。

2012-11-20

p2p的概念介绍

对p2p进行介绍,p2p并不是什么新的技术,上个世纪70年代就存在了,只是网络和机器计算能力限制了,这个文档简单的介绍p2p的技术概念。在网上找的,然后整理的文档

2012-11-16

基于LBS应用研究报告

研究LBS行业应用,目录:什么是LBS。限制LBS发展的可能因素,促进LBS发展的因素。并在此基础上分析现有的LBS产品和商业模式,LBS应用开发的门槛,LBS发展的模式。

2012-02-23

ANDROID 2.0游戏开发实战宝典.part2

ANDROID 2.0游戏开发实战宝典电子书部分,PDF格式,仅作技术交流学习,如有版权侵犯,请联系我本人,立即删除!由于文件太大分为3部分上传。

2011-07-17

关于云计算入门的一个入门书籍

对云计算的一些定义,包括云的一些可能有的服务以及商业模式。可以对云有一个简单的了解。

2010-10-25

2008年春季中精考试试题解答

包含08年春季的精算师考试题目以及答案,但答案没有解析。本来已经有资源,但那个资源要5分,就上传一个不要分的资源,希望对大家有帮助

2010-09-13

JAVA编程艺术(不是高老师那个版本)

JAVA编程艺术(不是高老师那个版本),不要分就可以下载了。

2010-03-25

基于symbian 超级码丽游戏-供学习

超级码丽游戏的源代码,在网络上收藏的。现在与网友免费分享,

2010-02-25

该程序用于获取手机基站数据,调用WEB接口实现定位

该源代码行获取基站数据,然后根据基站数据进行定位。但是定位采用的GPS数据 。GPS数据是通过WEB接口 得到

2009-11-20

该程序 可以弹出一人比ALERT好的窗口。

该程序 可以弹出一人比ALERT好的窗口。对于WEB开发人员来说,相当实用,谢谢分享

2009-11-20

该程序用于获取手机基站 数据。

该程序 可以在手机上获取当前基站数据。小区号,基站号,等等。非常实用

2009-11-20

空空如也

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

TA关注的人

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