自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小豪之家

一个热爱生活的普通C++程序员

  • 博客(317)
  • 资源 (7)
  • 收藏
  • 关注

转载 Fastcgi协议定义解释与说明

首先介绍响应的数据,比较简单,再者我们对返回的数据比较敏感……1 响应格式如(十六进制方式显示)序列 0 1 2 3 4 5 6 7 ...数值 01 06 00 01 01 1D 03 00...序列0(值01)为version,固定取1即可序列1(值06)为type,代表FCGI_STDOUT,表示应用的输出序列2 3(00 01)代表2字节的请求i

2014-02-20 16:54:07 1999

原创 libevent2.0源码学习三:对网络模型的(EPOLL)的封装

Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,所以,libevent对系统底层的网络模型作了一层封装,下面我们就来看一下。

2014-02-19 15:34:10 4502

原创 libevent2.0源码学习二:通用数据结构

本来想分析一下libevent实现的链表,队列,最小椎,哈希表这三个数据结构的,后来发现网上已经有人写过分析了,我就不重要造轮子啦。上链接:1:TAILQ队列(compat/sys/queue.h):http://bachmozart.iteye.com/blog/2928362:最小堆(minheap-internal.h):http://www.cppblog.com/kevi

2014-02-18 15:59:40 2127

原创 libevent2.0源码学习一:前言

开始分析之前的废话使用libevent 2.0.21-stable(这个系列的分析也是基于这个版本的)也有一段时间了,最近心血来潮去读了它的源码。顺便也写一下分析吧,方便以后查看,也利于别人学习和交流。

2014-02-18 15:51:47 2101

原创 用openssl进行rsa的加密与解密(linux,C++版)

初学openssl库,写了一例子,记录一下。

2014-02-17 11:34:27 15101

转载 linux更改执行进程名称

前几天网上搜索如何更改执行进程的进程名称,并没有得到一个好的答案.刚刚阅读nginx的源码,发现这样一种解决方案,记录之:网上说的比较多的是直接更改argv[0],但是如上图中所示,nginx中指出,必须将argv[1]置为NULL才行,而且要注意,系统给argv[0]提供的空间可能不足以存储你所要求的新title,解决方案是重新给环境变量申请内存区域,然后将环境变量复制过去(en

2014-01-24 12:45:17 1886 1

转载 Eclipse快捷键 10个最有用的快捷键

Eclipse中10个最有用的快捷键组合 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。    1. ctrl+shift+r:打开资源    这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个

2014-01-21 14:06:39 830

原创 LINUX时间同步

1.  安装ntpdate工具# sudo apt-get install ntpdate2.  设置系统时间与网络时间同步# ntpdate cn.pool.ntp.org3.  将系统时间写入硬件时间# hwclock --systohc

2014-01-21 09:27:15 1042

转载 Linux使用eclipse编译,调试Nginx模块

1.进入nginx 源码目录/home/song/nginx-1.3.9/命令行执行(最简单的参数,配置安装目录) 代码如下复制代码a>./configure –prefix=/home/song/test_nginxb>makec>make installnginx就安装在了/home/song/test_n

2014-01-21 09:18:05 1664

转载 在C/C++程序中打印当前函数调用栈

前几天帮同事跟踪的一个程序莫名退出,没有core dump(当然ulimit是打开的)的问题。我们知道,正常情况下,如果程序因为某种异常条件退出的话,应该会产生core dump,而如果程序正常退出的话,应该是直接或者间接的调用了exit()相关的函数。基于这个事实,我想到了这样一个办法,在程序开始时,通过系统提供的atexit(),向系统注册一个回调函数,在程序调用exit()退出的时候,这个回

2014-01-07 09:52:14 1594

转载 Linux Mint 的国内软件源(支持 Linux Mint 13/14/15)

这个 Linux Mint 的国内软件源是由开源中国架设的,源的地址:http://mirrors.oschina.net/linuxmint/使用方式:首先,备份软件源文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup复制代码Linux Mint推荐使用Software Source

2014-01-02 22:37:25 7309

原创 用libevent实现一个小小的HTTP SERVER

如题,先上代码://http_server.c#include #include #include #include #include #define PORT 8080#define SERVER_MARK "mytest http server 0.1"void http_handle(struct evhttp_request *req, void *arg);i

2013-12-27 11:34:24 3063

原创 某高人实现的红黑树模板类

某高人实现的红黑树模板类

2013-12-26 11:47:32 2288

转载 4年技术经验

从毕业开始到现在技术已经做了4年了。4年时间,从一个创业MIS型公司的小小程序员混到了现在的互联网企业的技术型PM(其实个人觉得自己应该被称为高级工程师,或者厚着脸皮的话称为“架构师”也行)。中间的道路虽然也是磕磕绊绊,当庆幸的是还总算是爬过来了。       其实要说有什么大的经验也算不上,只能说跌爬滚打了4年时间,再怎么不长记性,忘乎所以,长了伤疤忘了疼,但是疤痕总归要留下一点?!只能

2013-12-20 08:58:11 1274 1

原创 nginx队列模块的分析和使用

nginx队列模块的设计挺精妙的,也算是用一个C语言实现泛型编译的典型例子了,我将其独立出来,写上注释和测试例子,方便以后查看。

2013-12-16 15:14:01 2246

原创 FastCgi与PHP-fpm之间的关系

提问:我在网上查fastcgi与php-fpm的关系,查了快一周了,基本看了个遍,真是众说纷纭,没一个权威性的定义。网上有的说,fastcgi是一个协议,php-fpm实现了这个协议; 有的说,php-fpm是fastcgi进程的管理器,用来管理fastcgi进程的; 有的说,php-fpm是php内核的一个补丁; 有的说,修改了php.ini配置文件后,没办法平滑重启,所以就诞生

2013-12-06 14:27:52 2841

转载 Nginx模块开发入门

前言Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%。与Apache相比,Nginx在高并发情况下具有巨大的性能优势。Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性。Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTT

2013-12-02 11:27:14 1476

转载 MySQL执行计划解读

Explain语法EXPLAIN SELECT ……变体:1. EXPLAIN EXTENDED SELECT ……将执行计划“反编译”成SELECT语句,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句 2. EXPLAIN PARTITIONS SELECT ……用于分区表的EXPLAIN执行计划包含的信息 id

2013-11-26 16:05:17 933

原创 redis网络事件框架的使用

redis封装了一个小型网络库供自己使用,这个网络库只有几百行代码,却基本实现了一个高效的异步网络事件框架,而且与其他redis模块相对独立,故我将其独立出来,方便以后复用。与著名的libevent相比,它代码精简,只实现了最基本的功能,而且没有用上什么高深的技术,十分适合我们学习和借鉴。 以下这个程序实现了一个简单的回显服务器,并且每秒钟在控制台输出一句话。它简单地演示了redis网络模块的使用。 这个程序由6个源文件组成,ae.h, ae.c, ae_epoll.c, anet.h, anet.c

2013-11-25 17:33:21 3114 7

原创 C++:简单的二维数组模板类

这是我自己封闭的简单的二维数组模板类。欢迎大家试用我用它来代替二维数组或二维vector(二维数组容易出错,二维vector效率太低)

2013-11-19 18:09:04 4987

转载 一个简单的makefile示例及其注释

相信在unix下编程的没有不知道makefile的,刚开始学习unix平台下的东西,了解了下makefile的制作,觉得有点东西可以记录下。  下面是一个极其简单的例子:现在我要编译一个Hello world,需要如下三个文件:  1. print.h      #include      void printhello();  2. print.c

2013-11-19 17:26:04 1223 1

原创 linux C:将域名转化为IP地址

如题,这个功能挺常用的,记录一下方便以后使用

2013-11-18 15:54:06 3962 2

转载 Linux中C语言open函数打开或创建文件详细讲解

头文件:#include #include #include 函数原型:int open( const char * pathname, int flags);int open( const char * pathname,int flags, mode_t mode);作用:以各种方式打开文件返回值:返回打开的文件句柄,-1 打开失败函数说明 参数pa

2013-08-28 13:53:06 10393

转载 移民就移民了,别拉祖国来垫背

发现人的目光可以完全被锻造,并且目光被颠倒的人自身丝毫意识不到,是源于一桩小事。那年在巴黎凡尔赛门的一个展会上,我遇到来自德国的一位华商,浙江青田人,生意做得相当大,雇了好几个工,都是大陆过去的年轻人。其中一位金融专业毕业的硕士生与我搭起话来。得悉小伙子的专业和文凭,见他做着高中文凭都不需要的活,我便问他为什么。他说毕业后想留在德国,但找不到专业对口的工作,只能将就这份活。说着背对老板,脸上露出不

2013-07-23 12:54:04 1577 3

转载 Winsock入门编程示例代码

Winsock入门,socket编程,网络  客户端代码:[cpp] view plaincopy#include   #include   #include   #pragma comment(lib,"Ws2_32.lib")  #define BUFFER_SIZE 50  /*客户端代码  

2013-07-22 09:37:48 2341

原创 int, double, string的转换函数

这几个函数还是挺常用的,在这里记录一下,以后要用的时候就不用重新写啦。#include #include #include #include #include using namespace std;class CommonTool{public: static int CoverStringToInt(const string &value); static strin

2013-07-15 10:55:44 1645 1

转载 glog功能介绍

本文是根据自己的理解翻译组织了glog的manual,鉴于自身的理解能力和英语水平,可能存在谬误,欢迎大家指出!英文原文见http://google-glog.googlecode.com/svn/trunk/doc/glog.html 1.   概述      Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似,例:

2013-07-06 16:26:20 1646

转载 Linux top 命令详解

查看多核CPU命令 mpstat -P ALL  和  sar -P ALL  说明:sar -P ALL > aaa.txt   重定向输出内容到文件 aaa.txt top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文

2013-07-06 14:31:35 1128

转载 linux下获取程序当前目录绝对路径

1、Shell版#获取当前脚本所在绝对路径 cur_dir=$(cd "$(dirname "$0")"; pwd)  2、C语言版    方法一:用realpath函数。这种方法用于开机启动程序获取自身目录会出错。char current_absolute_path[MAX_SIZE]; //获取当前目录绝对路径 if (NULL == realpath("./", c

2013-06-28 17:41:56 6080

转载 log4cplus学习笔记

(一)log4cplus是C++编写的开源日志系统,功能很全面,用到自己开发的工程中会比较专业的,本文介绍了log4cplus基本概念,以及如何安装,配置。 ### 简介 ###log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以

2013-06-20 11:30:33 2282

转载 为什么要探索宇宙(献给那些质疑中国载人航天的人们)

1970年,赞比亚修女 Mary Jucunda 给 Ernst Stuhlinger 博士写了一封信,他因在火星之旅工程中的原创性研究,成为 NASA(美国航空航天局)Marshall 太空航行中心的科学副总监。信中,Mary Jucunda 修女问道:目前地球上还有这么多小孩子吃不上饭,他怎么能舍得为远在火星的项目花费数十亿美元。Stuhlinger 很快给Jucunda 修女回了信,

2013-06-14 21:38:56 2061

转载 UML基础

本教程参考“大话设计模式”,作者:程杰 下面我们来详细分解:动物矩形框:代表一个类Class,类图分为三层:第一层,显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是行为。注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。

2013-06-07 18:04:56 1186

转载 centos下编译php扩展

新装了centos 6.2,用yum安装的php,发现少了mbstring、mcrypt扩展,可是在centos的repos里不再包括mcrypt的源文件,于是1、下载php-5.3.11.tar.gz,找到ext/mcrypt,用phpize来进行扩展,发现phpize不能用;2、rpm -q --whatprovides /usr/bin/phpize找出需要安装php-devel,

2013-06-07 17:02:03 2574

转载 网络并发 工作经验总结(2W/S级别吞吐)

协议设计原则:第一条 使用文本协议, 尽量使用http协议;(文本协议利于调试和测试,也利于脚本使用, http协议成熟,比较多工具支持)第二条 如果效率成为问题,可以在实现了文本协议之后,支持二进制协议;(这样程序的BUG可以用文本协议及早发现,后来调试也更方便);第三条 选择二进制协议时(protocal_buffer, memcache协议, MessagePack)

2013-06-07 14:11:07 1739

原创 用libevent实现简易的telnet

我承认这篇文章有点标题党,呵呵。其实就是一个能和服务器建立全双工通信的客户端而已,用网络库libevent实现。从这里也可以看出,同样的功能,分别用epoll和libevent来比较,从代码量和代码清晰度来说,libevent完胜,呵呵。上代码:#include #include #include #include #include #include #i

2013-06-07 13:56:10 2643

原创 用epoll实现简易的telnet

我承认这篇文章有点标题党,呵呵。其实就是一个能和服务器建立全双工通信的客户端而已,用epoll机制实现。上代码:#include #include #include #include #include #include #include #include //注意,不能一次性输入超过MAXLINE个的字符,否则程序会出错#define MAXLINE 1024//发

2013-06-07 11:16:43 1718

转载 STDIN_FILENO

最近在学《UNIX高级环境编程》,遇到有关STDIN_FILENO的问题,在此总结一下。在UNIX一些系统调用中使用到STDIN_FILENO表示标准输入,STDOUT_FILENO表示标准输出,STDERR_FILENO表示标准出错,使用时需要加头文件在UNIX下还有stdin,stdout,stderr表示同样的含义。二者的主要区别为:1.数据类型不同,前者为i

2013-06-07 10:00:41 2283

转载 开源日志系统log4cplus

原文地址,原作者是分成7个部分的:       (一)   http://www.cppblog.com/tx7do/articles/11715.html       (二)   http://www.cppblog.com/tx7do/articles/11716.html       (三)   http://www.cppblog.com/tx7do/article

2013-06-01 11:35:59 1291

转载 mysql字符串函数

对于针对字符串位置的操作,第一个位置被标记为1。ASCII(str)返回字符串str的 最左面字符的ASCII代码值。如果str是空字符串, 返回0。如果str是NULL,返回NULL。mysql> select ASCII('2'); -> 50mysql> select ASCII(2); -> 50mysql> select ASCII('dx

2013-06-01 10:42:10 1078

原创 在Ubuntu上用apt-get安装opencv

0:网上很多安装opencv的教程都是基于源码安装的,这样又麻烦又容易出错,用apt-get安装,只要输入几条命令就行,方便多了(我是菜鸟,高手绕路,呵呵)1:搜索与OPENCV相关的软件包:apt-cache search opencv2:安装这些软件包(我全部用默认安装)sudo apt-get install XXX XXX XXX3:查看安装好的(与OPENCV相关

2013-05-31 17:18:01 9159 4

redis网络事件框架的使用

redis封装了一个小型网络库供自己使用,这个网络库只有几百行代码,却基本实现了一个高效的异步网络事件框架,而且与其他redis模块相对独立,故我将其独立出来,方便以后复用。 与著名的libevent相比,它代码精简,只实现了最基本的功能,而且没有用上什么高深的技术,十分适合我们学习和借鉴。 以下这个程序实现了一个简单的回显服务器,并且每秒钟在控制台输出一句话。它简单地演示了redis网络模块的使用。 这个程序由6个源文件组成,ae.h, ae.c, ae_epoll.c, anet.h, anet.c, main.c组成,main.c由我原创,其他源文件来自于redis源代码(注释版,有改动)

2013-11-22

hao IM 0.20更新补丁

haoIM的更新补丁,修复了几个BUG 1:自动保存/读取服务器的IP地址和端口,不用每次打开都输入一遍。 2:解决了对方隐身时依然显示对方状态的问题。 3:解决了程序关闭后托盘图标并没有立即消失的问题。 4:解决了因外部原因而强制关闭主窗口后,聊天窗口依然存在的问题。 软件(未更新)地址:http://download.csdn.net/source/3198457 源代码(未更新)地址: http://download.csdn.net/source/3198961

2011-04-22

我自己写的聊天软件haoIM的源代码(utf-8)

我自己写的聊天软件haoIM的源代码,用C++(QT)实现,欢迎大家下载试用。 有问题或建议,请发送邮件至:aa1080711@163.com

2011-04-17

我自己写的聊天软件haoIM

我自己写的聊天软件haoIM,用C++(QT)实现,欢迎大家下载试用。 如果有问题或建议,请发送邮件至:aa1080711@163.com

2011-04-17

我自己写的聊天软件haoIM的源代码

我自己写的聊天软件haoIM的源代码,用C++(QT)实现,欢迎大家下载试用。 有问题或建议,请发送邮件至:aa1080711@163.com

2011-04-17

有问题的QT程序,请大家帮忙看一下吧

有问题的QT程序 这个程序的功能是客户端向服务器发送一个字符串,服务器接收到这个字符串之后,进行处理(复制一个相同的字符串之后加在后面),再返回给客户端。 但不知为什么,服务器一接收数据就出错,请大家帮我看一下吧,先谢谢了。 (提示说不能向别的线程发送信号/数据,但我所有的问题都是在同一个线程里面处理的啊?)

2011-03-21

C与C++库函数.chm

C与C++的基本函数汇总,给大家当字典来用一下。

2009-10-06

空空如也

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

TA关注的人

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