自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

转载 TEMP_FAILURE_RETRY宏的用法

#define TEMP_FAILURE_RETRY(expression) \    (__extension__\     ({ long int __result;\         do __result = (long int)(expression);\         while(__result == -1L&& errno == EINTR);\       

2013-12-20 11:48:52 9481

原创 python学习初步--安装和打包

近期由于要写一个游戏的简单模拟客户端,为了方便使用到了python的GUI编程。查找了一些资料,发现这方面的库很多,如:tkinter,wxpython等等,这里我选择了wxpython!首先:搭建轻量级的IDE。由于个人本身是从LINUX的VIM出身,所以有些排斥一些重量级的IDE。所以Editplus成为了首选,关于配置方面的东西,这里不想多说。参考:http://www.jb51.n

2013-08-15 10:42:05 936

转载 google c++ style

背景Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则可在允许代码有效使用C++语言特性的同时使其易于管理。风格,也被视为可读性,主要指称管理C

2013-07-09 10:32:29 825

原创 基于游戏消息数据的二进制序列化实现

在游戏开发过程中,经常会涉及到前后端数据的交互。以二进制数据流进行通信是一种常用的方式。然而由于游戏通信的数据复杂多样,结构也相对不一,往往会造成数据的序列化繁琐。现在介绍一种相对简单的方式。首先描述一下内存结构:|-------------------------------------------|--------------------------------------------

2013-07-04 11:21:10 1061

原创 设计模式之工厂模式

年底了,目前呆完美一点屁事也没有,决定用这最后的几天对设计模式做一次系统的学习。本博客系列参考《大话设计模式》一书,然后对书中各知识点做一些总结以备日后拾遗。电子版大家可以到网上下载!开篇之前,首先来学习一下类图画法及类之类关系!类图分三层:第一层显示类的名称,如果是抽象类,就用斜体显示,如果是接口,则类前面有一个>表示。第二层类的属性字段。第三层类的方法,前面的'

2013-02-04 19:53:45 522

转载 深入C++的new

“new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事:获得一块内存空间、调用构造函数、返回正确的指针。当然,如果我们创建的是简单类型的变量,那么第二步会被省略。假如我们定义了如下一个类A:clas

2013-02-04 17:08:38 579

转载 一个游戏程序员的学习资料

转自:http://software.intel.com/zh-cn/blogs/2012/03/20/400010004/?cid=sw:prccsdn2194想起写这篇文章是在看侯杰先生的《深入浅出MFC》时, 突然觉得自己在大学这几年关于游戏编程方面还算是有些心得,因此写出这篇小文,介绍我眼中的游戏程序 员的书单与源代码参考。一则是作为自己今后两年学习目标的备忘录,二来没准对别人也有点参

2013-01-24 12:14:12 1143

原创 std::pair, std::copy, std::lower_bound, std::back_insert使用

std::pair首先给出std::pair的class定义:template struct pair{ typedef T1 first_type; typedef T2 second_type; T1 first; T2 second; pair() : first(T1()), second(T2()) {} pair(const T1& x, cons

2013-01-23 11:24:44 1804

转载 cmake使用c++0x

因为想用template aliases特性,必须要GCC4.7.又不想编译源代码,所以按照下面的方法安装。[plain] view plaincopyprint?sudo add-apt-repository ppa:ubuntu-toolchain-r/test  sudo apt-get update  sudo apt

2013-01-14 16:00:19 2606

原创 安装gcc 4.7.2

centos 6.3 安装gcc 4.7.2因为是centos linux,默认可以采用yum方式安装,则采用如下命令安装gcc编译器即可:# yum -y install gcc如果是其他linux,可以地址参考如下步骤步骤如下:1:在/gcc.gnu.org 下载最新的gcc-4.7.2.tar.gz包mkdir /usr

2013-01-10 14:05:59 6194

转载 C++11 tuple & 可变模板参数

最近在学习陈硕先生的muduo网络库时看到一些很不错的东西,博文地址:http://blog.csdn.net/solstice/article/details/5829421#comments其中涉及到c++ 11新特性,然后想系统的学习一下。网上找了一个资料,现给一个地址:http://www.cnblogs.com/hujian/tag/C%2B%2B%2011/。现转载它其

2013-01-10 11:52:35 2098

转载 如何查看进程的线程数?

之前因为线程内出现异常导致Python部分线程退出,程序以单线程方式运行了好几个星期,浪费了很多时间。如何查看当前进程有多少个存活线程呢?方法1)pstree -p 4761(进程ID)。如下截图所示: 方法2)cat /proc/4761(进程ID)/status。如下图所示:  方法3)top -p 4761(进程ID),

2013-01-09 18:11:30 19259

转载 线程局部变量与 __thread

给几篇参考文档,日后研究1)http://www.searchtb.com/2012/09/tls.html2) 线程局部变量的使用与多线程开发: http://developer.51cto.com/art/200909/153297.htm3) 再谈线程局部变量 : http://zsxxsz.iteye.com/blog/5489034) http://gcc

2013-01-07 10:33:23 951

转载 Reactor和Proactor模式

原文地址:http://xmuzyq.javaeye.com/blog/783218=====================================================在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。

2013-01-06 15:01:44 544

原创 cocos2d起步

最近上班无聊的要死,出于好奇,进入了cocos2d的世界。工欲善其事必先利其器,下面几篇博文讲解了cocos2d的在windows + vs下的安装,以及编译成android程序的方法http://www.cnblogs.com/zilongshanren/archive/2011/09/27/2192928.htmlhttp://wenku.baidu.com/v

2012-12-28 16:09:43 568

原创 doxygen使用方法

doxygen是一个文档生成工具。具体见:http://www.ibm.com/developerworks/cn/aix/library/au-learningdoxygen/index.html主要改动地方:OUTPUT_DIRECTORY = /home/user1/docsEXTRACT_ALL = yesEXTRACT_PRIVATE = yesEXTRAC

2012-12-26 17:21:49 627

转载 libevent 源码分析:evbuffer缓冲

可以说对于任何网络库(模块)而言,一个缓冲模块都是必不可少的。缓冲模块主要用于缓冲从网络接收到的数据,以及用户提交的数据(用于发送)。很多时候,我们还需要将网络模块层(非TCP层)的这些缓冲数据拷贝到用户层,而这些内存拷贝都会消耗时间。    在这里,我简要分析下libevent的相关代码(event.h和buffer.c)。结构    关于libevent的缓冲模块,

2012-11-07 15:03:43 1426

原创 boost及libmemcache安装基于suse机器

最近要发版本到tx suse机器,首先在安装boost和libmemcache的时候遇到很多问题,主要是boost在完全编译的时候会报出来很多的错误,而且不能够产生静态lib文件。现在此做一记录:1.libmemcached安装./configure --enable-static --with-memcached --prefix=/opt/libmemcached/ --disable

2012-10-09 14:20:11 2241

原创 2012/09/25记录今天开发的几个问题

1:在boost socket中,如果一个socket意外关闭,那么执行m_socket.remote_endpoint().address().to_string().c_str()打印远程socket地址,就会发生不可捕获的错误。今天在以下代码void connection_t::read_completed_i(const boost::system::error_code& err

2012-09-25 22:13:36 1459

转载 Flash Socket通信的安全策略

昨天做测试的时候遇到一个问题,做好的SWF在Flash AS3中调试通过,但是发布到html中之后就无法得到数据了。查了一些资料之后找到了解决办法。这里感谢 剑心 提供帮助,以及同事若水三千提供Java代码及日志记录。1、问题描述      将flash发布为html格式后,加载页面后,swf无法与服务器进行socket通信。Flash端显示的错误为:securityError

2012-09-25 20:26:21 6587

转载 Linux Top 命令详解[内存使用情况]

TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。       TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的

2012-09-20 14:11:06 1026

原创 linux netstat命令参数及用法详解--查看网络连接详细状态命令

命令:netstat功能说明:显示网络状态。语  法:netstat [-acCeFghilMnNoprstuvVwx][-A][--ip]补充说明:利用netstat指令可让你得知整个Linux系统的网络情况。参  数:  -a或--all   显示所有连线中的Socket。  -A或--   列出该网络类型连线中的相关地址。  -c或

2012-09-13 20:41:19 5439

转载 Linux下的文件被删除后恢复

作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。恢复步骤一、用运SecureCRT远程对操作系统上,查看一下当前系统版本号,及文件

2012-08-28 17:34:08 5068

转载 国外程序员推荐:每个程序员都应读的书【按这个提升自己】

转自http://blog.jobbole.com/5886/【更新】:近日(2012年8月17日)重看 StackOverflow 的原讨论帖,发现于今年年初被关闭了。不过有人做了汇总,把其他回复中提到的书籍,放在投票数最高的回复中。新更新添加 59 本书,详情可见文章后半部分。编者按:2008年8月4日,StackOverflow 网友 Bert F 发帖提问:哪本最具影响

2012-08-20 11:47:24 3818

原创 C++ 书籍

https://www.google.com/nrc小米 64819535libevent 1.4.10  http://godorz.info/2011/03/the-annotated-libevent-sources-about-http/  http://blog.csdn.net/sparkliang/article/details/4974876memcache ngi

2012-08-16 20:56:01 1172

转载 敏感词过滤算法实现

前面曾经发过一篇关于类似的实现,现在做一总结。转载地址http://hellohank.iteye.com/blog/1327903说到敏感词过滤,我也觉得这里没有必要写这个文章,因为前人已经前前后后有过很多种算法解决该问题。这里我之所以写这个文章,是因为我自己自创了一种算法(真的是自创哦,因为我在写这个算法的时候,完全是自己想出来的方式,没有借鉴任何代码!灵感来自于一篇文章中的一

2012-08-16 11:31:11 6024

转载 Linux iostat监测IO状态

Linux iostat监测IO状态2010-03-1  |  13:13分类:Linux,技术细节  |  标签:Linux  |  27,074 viewsLinux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。1. 基本使用$iostat -d -

2012-08-15 17:31:39 534

原创 游戏中产生全局对象惟一ID的方法

最近闲来无事,一直在各大网站上瞎看,在http://www.gameres.com/上看到了许多关于游戏设计的心得,收益良多。总结一下关于游戏中产生全局对象惟一ID的生成方法。希望以后有所用。。。。1.来自:http://blog.csdn.net/herm_lib/article/details/6398373网游中,角色ID、公会ID和道具ID等一般设计成全局唯一。这样做,一个

2012-08-15 11:21:52 1234

转载 线程同步与双队列

关于线程同步与双队列性能2009年7月12日星期日1问题背景这是在2008年3月学习多线程编程时遇到的一个问题。当时我写了一个代码片段,其中两个线程共享一个队列,一个线程往队列中写数据,而另一个线程从队列中读取数据。这是典型的生产者和消费者模型。但在这里并不适合使用semaphore来做。由于当时的我对多线程编程不太熟练,在线程中大量使用了printf输出调试信息,

2012-08-09 21:12:02 1463

原创 Future 模式

在多线程交互的中2,经常有一个线程需要得到另个一线程的计算结果,我们常用的是Future异步模式来加以解决。Future顾名思意,有点像期货市场的“期权”,是“对未来的一种凭证”,例如当我们买了某个房地产开发商的期房,交钱之后,开发商会给我们一个凭证(期权),这个凭证告诉我们等明年某个时候拿这个凭证就可以拿到我们所需要的房子,但是现在房子还没建好。市场上之所以有“期货”,也正由于有这种需求,才

2012-08-09 15:55:12 603

原创 new与malloc的区别

new与malloc的区别 首先摘录《effectivec c++》条款3malloc和free(及其变体)会产生问题的原因在于它们太简单:他们不知道构造函数和析构函数。假设用两种方法给一个包含10个string对象的数组分配空间,一个用malloc,另一个用new:  string *stringarray1 =static_cast(malloc(10 * s

2012-08-07 17:19:47 570

原创 如何设计高效的聊天过滤词算法?

关于聊天过滤词算法,一直困扰着我,了解到很多算法,比如:KMP, 正则循环匹配等,然后在http://www.dewen.org/q/41/%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E9%AB%98%E6%95%88%E7%9A%84%E8%81%8A%E5%A4%A9%E8%BF%87%E6%BB%A4%E8%AF%8D%E7%AE%97%E6%B3%95%EF%

2012-08-07 11:49:28 2469

转载 mangos源码分析--计划

最近无意中看到了mangos这么个东东,它很好的反应了目前游戏服务器的设计,所以决定在打酱油的时候对其研究一下。现在给出参考地址!!!参考:1、http://www.cppblog.com/ming81 mangos源码分析系列2、 http://hi.baidu.com/zyy503950958/blog/item/b92fbe87514e9c26

2012-08-03 14:35:33 6990

原创 关于string中data()和c_str()函数的几点区别

最近在看网上的一些源码的时候,遇到一个问题,大概是这样的。先上代码:class bin_decoder_t{public: explicit bind_decoder_t(const string& src_) { m_ptr = src_.data(); m_remain_size = src.size(); }private: const char* m_ptr;

2012-08-03 10:54:54 13173

转载 epoll使用详解

Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。1、为什么select落后    首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在我用的2.6.15-25-386内核中,该

2012-08-02 12:09:59 936

转载 Epoll详解

epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。  一、epoll的优点支持一个进程打开大数目的socket描述符。IO效率不随FD数目增加而线性下降。 二、epoll的使用epoll有2种工作方式:LT和ET。   LT(lev

2012-08-02 12:07:36 833

原创 关于指针比较(涉及的是对象同一性的问题)

这个问题我是在《C++必知必会》条款28里面看到的。C++指针比较的不是地址,而是对象同一性问题。即指针地址可以不同,而比较的结果却相同,因为它们指向的是同一个对象。我们可以先看看在类的继承关系中,这种情况表现的形式。先上代码:#include using namespace std;class a{ private: int m_a;};clas

2012-07-26 18:00:55 638

转载 [转]linux时间相关结构体和函数整理

一、时间类型。Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clock_t, struct tm.(1) time_t是一个长整型,一般用来表示用1970年以来的秒数.该类型定义在中.一般通过 time_t time = time(NULL); 获取.(2) struct t

2012-07-25 14:50:34 622

原创 类成员指针和成员函数指针(深入理解)

类成员指针和成员函数指针(深入理解)         本想实现一个boost的bind,然而在绑定类成员函数时引出了成员函数指针这么个东西,通过深入的理解之后,又引出了类成员指针这么个东西。通过学习对他们有了深刻的理解,现在做一个总结如下,以示区分。(更多参考可见《c++必知必会》中第15,16节)1.类成员指针1)类成员指针到底是神马东东”指向类成员的指针“这个描述中有“指针

2012-07-24 11:59:47 1072

转载 boost bind 实现方法

一直比较好奇 boost::bind 里面占位符和参数的顺序是怎么实现的,也一直看不太懂这方面源代码,昨晚好好看了下,终于有点弄懂了。小记一笔,与大家分享。先看一个简单的用例:#include  int foo(bool a, int b, double c){    return 0;} int main(){    boost::bind(foo,

2012-07-23 16:28:37 5613 1

空空如也

空空如也

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

TA关注的人

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