自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晴天的专栏

专注于Linux /Window平台C/C++游戏服务器后台程序开发

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

转载 Sep Linux编译安装boost1_51_0

就简单的体验而言,boost1_51_0的编译过程非常简单,非常愉快。提示非常友好,整个过程可以几乎认为自动化完成。较之前版本的编译过程大大简化了操作。1、下载boost1_51_0的压缩包,解压。2、进入解压后的目录并运行./bootstrap.sh。 3、booststrap.sh运行完毕之后会提示你运行./b2。官方文档是./b2 install --prefix=PRE

2013-12-30 11:17:45 1361

转载 sprintf与snprintf

int sprintf( char *buffer, const char *format [, argument] ... );除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。printf和sprintf都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,

2013-12-20 19:13:11 1208 1

转载 snprintf函数用法

int snprintf(char *restrict buf, size_t n, const char * restrict format, ...);函数说明:最多从源串中拷贝n-1个字符到目标串中,然后再在后面加一个0。所以如果目标串的大小为n 的话,将不会溢出。函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。Result1(推荐的用法)#include

2013-12-20 19:12:29 1188

转载 C字符串处理函数

void *memccpy (void *dest, const void *src, int c, size_t n);从src所指向的对象复制n个字符到dest所指向的对象中。如果复制过程中遇到了字符c则停止复制,返回指针指向dest中字符c的下一个位置;否则返回NULL。void *memcpy (void *dest, const void *src, size_t n);从s

2013-12-20 19:09:27 684

原创 boost::system::error_code ec 用法

首先要加一个boost_system库 // setp 1: 创建一个 io_service实例 boost::asio::io_service svc; // step 2: 创建一个 tcp::socket对象,现在还不能用于收发数据 tcp::socket sock(svc); // step 3: 创建一个指向服务器的地址对象,用于 socket.connect()操作

2013-12-18 11:52:28 12329 1

转载 阻塞,非阻塞IO和同步,异步IO

在看ACE的过程中,难免对socket的一些特别的api有点质疑,于是不得不求助于unix网络编程,在看的过程中终于懂得了阻塞,非阻塞和同步,异步的区别,以前认为非阻塞就是一中异步模式呢,哎,看来内功真的不行,太菜鸟了,下面开始讲解一下他们的真正含义:Unix下的五种I/O模型是:阻塞I/O非阻塞I/OI/O复用(select 和poll)信号驱动I/O异步I/O

2013-12-17 18:41:25 897

原创 boost 异步IO 客户端 实例代码

#include #include using namespace std;using namespace boost::asio::ip;boost::asio::io_service svc;tcp::socket sock(svc);char buf[512];string msg;void handleConnect(const boost::system::err

2013-12-17 17:31:30 1047

原创 boost TCP 同步IO客户端 示例演示

#include #include int main() { using namespace std; using namespace boost::asio::ip; // step 1, 创建一个 io_service 实例 boost::asio::io_service svc; // step 2, 创建一个 tcp::acceptor 对象,用于随后接受来自客户端的连

2013-12-17 17:28:03 1015

原创 boost TCP 同步IO服务端 代码

#include #include int main() { using namespace std; using namespace boost::asio::ip; // step 1, 创建一个 io_service 实例 boost::asio::io_service svc; // step 2, 创建一个 tcp::acceptor 对象,用于随后接受来自客户端的连

2013-12-17 17:27:01 1213

原创 boost 异步IO 服务端实例代码

/* * tcp_async_echo_server.cpp * * Created on: Dec 16, 2013 3:17:37 PM * Author: Jeffrey Cheng * Web: http://www.xuanyuan-soft.cn * Mail: kwarph@gmail.com */#include #in

2013-12-17 17:24:21 1535

转载 io阻塞与io非阻塞之

handscup:这里要注意,其实非阻塞IO和异步IO的概念一样,此文所说的异步/异步,指的是线程,且不完全正确。正确的要看http://en.wikipedia.org/wiki/Asynchronous_I/O-----------------------同步与异步IO、阻塞与非阻塞IO很多时候我们常常看到同步与异步,阻塞与非阻塞的出现。有的地方直接将同步与阻塞画上了等号。

2013-12-17 17:22:40 771

转载 Qt入门-使用QT+VS2008开发windows应用程序

QT是跨平台的应用程序开发工具,闻名遐迩,下面使用VS2008结合QT开发一个应用程序。(1)打开VS2008,新建QT工程 (2)点击下一步,这里是选择需要使用的QT库(3)点“下一步”“class name”:指定类的名称,这里写“qt_app”;“Base class”:指定自定义类的父类,这里选择“QMainWindo

2013-12-13 18:55:06 1790

原创 QtCored4.dll 解决方法 提供这个文件所有qt版本

QtCored4.dll文件下载,解决找不到QtCored4.dll的问题QtCored4.dll控件常规安装方法(仅供参考):一、如果在运行某软件或编译程序时提示缺少、找不到QtCored4.dll等类似提示,您可将从脚本之家下载来的QtCored4.dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用。二、您从我们网站下载下来文件之

2013-12-13 17:22:21 4053

原创 万能指针: void*

#### 万能指针:  void*# 任意类型的指针都可以赋值给void*# void*不能直接进行“去引用”操作# 对void*操作:● 将任意类型的指针赋值给void*● 将一个void*对象赋值给另一个void*对象● 显式的将void*转换成其它类型的指针● 比较两个void*对象是否相等● 除上述操作之外的操作均不安全或不允许

2013-12-13 12:01:09 1139

原创 指针对象的产生方式

● 通过取址操作符(&)获取其它对象的地址● 通过 new 操作符获取动态分配的对象地址● 通过其它指针对象赋值● 指向一个数组

2013-12-13 11:59:41 713

原创 使用指针的常见问题

# 内存泄漏:一块堆内存没有被释放,也没办法被本进程和其他进程继续使用。            栈区内存可以由操作系统内核管理和回收,堆区内存,必须有应用程序进行 回收delete# 使用未初始化指针(如空指针,无效指针)    int k = 8; int*p = &k  取k变量内存地址  int *p = new int; *p=100;  # 悬挂指针  doubl

2013-12-13 11:58:17 929

原创 C++ 指针 数组指针 二维数组与指针 直接解释底层 各种指针(字符指针,函数指针,数组指针)解释

###################################################指针##################################################### 指针 Pointer :指针是存储内存地址的变量,内存地址如0x558## 指针类型,每一个数据类型 + * 是一个数据类型float* fp = (float*) &n;

2013-12-13 11:56:23 989

转载 Linux网络编程系列-获取机器名和ip

[cpp] view plaincopy#include   #include   using namespace std;    int main() {    int result = 0;    char hostName[100];    struct hostent* host = NULL;    result = gethostname(hostName, 100);

2013-12-12 11:37:30 1366

转载 linux批量转换文件编码

#!/bin/bash - #===============================================================================## FILE: conv.sh# # USAGE: ./conv.sh # # DESCRIPTION: 一个支持把整个目录递归转换GB2312为UTF-8的

2013-12-11 15:52:41 1351

原创 BOOST_AUTO

#define BOOST_TYPEOF(expr) BOOST_TYPEOF_KEYWORD(boost::type_of::ensure_obj(expr))BOOST_TYPEOF_KEYWORD();define BOOST_TYPEOF_KEYWORD __typeof____typeof__(var) 是gcc对C语言的一个扩展保留字,用于声明变量类型,var可

2013-12-11 11:12:49 1913

转载 BOOST_TYPEOF和BOOST_AUTO

头文件里定义了两个宏:BOOST_TYPEOF和BOOST_AUTO,分别用于仿真C++新标准的typeof和auto关键字,可以在编译期自动推导表达式的类型。它们不仅能够推导C++语言内建的int、double、数组、函数指针等等类型,也支持标准库中的容器类型,使程序员再也不需要写复杂的类型定义就能够轻松声明变量。这两个宏完全模仿了typeof和auto关键字的用法,除了因为宏的语法

2013-12-10 16:18:11 828

redis设计与实现(第二版) 带目录

《Redis设计与实现》全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis

2017-09-01

redis-3.0注释版源码

本项目是注释版的 Redis 3.0 源码, 原始代码来自: https://github.com/antirez/redis 。 这份注释是作者在创作新版《Redis 设计与实现》期间, 为了了解 Redis 的内部实现而制作的, 所有在书中有介绍的内容, 在源码中都进行了相应的注释。 在注释的过程中, 除了少量空格和空行方面的调整外, 没有对原始代码进行任何其他改动, 最大程度地保证了代码的“原汁原味”。 希望这份注释源码能给大家学习和了解 Redis 带来一点帮助

2017-09-01

空空如也

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

TA关注的人

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