Linux/CentOS 升级C基本运行库CLIBC的注意事项(当想解决GLIBC_2.x找不到的编译问题)

在你准备升级GLIBC库之前,你要好好思考一下,

你真的要升级GLIBC么?

你知道你自己在做什么么?

http://baike.baidu.com/view/1323132.htm?fr=aladdin
继续阅读 »

Linux下GLIBCXX和GLIBC版本低造成的编译错误的解决方案

最近在给编译环境centOS 6.5安装新版clang (clang 3.4/3.5)的时候,虽然已经装了gcc 4.9.1, 但编译的时候(参考clang官方主页http://clang.llvm.org/get_started.html的步骤,在独立build目录下运行clang自带的configure脚本),仍然出了“c compiler cannot create executables”的提示,去查看log信息,发现里面有下面几个错误:
继续阅读 »

Centos 升级GCC到4.8.2

本文使用操作系统:Centos 6.4 Desktop,64bit;

原GCC版本:4.4.7;

目标:升级GCC到4.8.2,以支持C++11。
继续阅读 »

linux socket常用函数

======== TCP ========

TCP_Server
socket()
bind()
listen()
accept()
write()
read()
close() 和shutdown()

继续阅读 »

小谈Online-game服务器端设计(4)

在这一章节,我想谈谈关于服务器端的脚本的相关设计。因为在上一章节里面,谈NPC智能相关的时候已经接触到一些脚本相关的东东了。还是先来谈谈脚本的作用吧。
在基于编译的服务器端程序中,是无法在程序的运行过程中构建一些东西的,那么这个时候就需要脚本语言的支持了,由于脚本语言涉及到逻辑判断,所以光提供一些函数接口是没用的,还需要提供一些简单的语法和文法解析的功能。其实说到底,任何的事件都可以看成两个部分:第一是对自身,或者别的物件的数值的改变,另外一个就是将该事件以文字或者图形的方式广播出去。那么,这里牵扯到一个很重要的话题,就是对某一物件进行寻址。恩,谈到这,我想将本章节分为三个部分来谈,首先是服务器如何来管理动态创建出来的物件(服务器内存管理),第二是如何对某一物件进行寻址,第三则是脚本语言的组织和解释。其实之所以到第四章再来谈服务器的内存管理是因为在前几章谈这个的话,大家对其没有一个感性的认识,可能不知道服务器的内存管理究竟有什么用。
继续阅读 »

小谈Online-game服务器端设计(3)

下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先,我们需要知道什么是NPC,NPC需要做什么。NPC的全称是(Non-Player Character),很显然,他是一个character,但不是玩家,那么从这点上可以知道,NPC的某些行为是和玩家类似的,他可以行走,可以战斗,可以呼吸(这点将在后面的NPC智能里面提到),另外一点和玩家物件不同的是,NPC可以复生(即NPC被打死以后在一定时间内可以重新出来)。其实还有最重要的一点,就是玩家物件的所有决策都是玩家做出来的,而NPC的决策则是由计算机做出来的,所以在对NPC做何种决策的时候,需要所谓的NPC智能来进行决策。
继续阅读 »

小谈Online-game服务器端设计(1、2)

 谈这个话题之前,首先要让大家知道,什么是服务器。在网络游戏中,服务器所扮演的角色是同步,广播和服务器主动的一些行为,比如说天气,NPC AI之类的,之所以现在的很多网络游戏服务器都需要负担一些游戏逻辑上的运算是因为为了防止客户端的作弊行为。了解到这一点,那么本系列的文章将分为两部分来谈谈网络游戏服务器的设计,一部分是讲如何做好服务器的网络连接,同步,广播以及NPC的设置,另一部分则将着重谈谈哪些逻辑放在服务器比较合适,并且用什么样的结构来安排这些逻辑。
继续阅读 »

线程池(领导者-追随者,生产者-消费者等)小结

领导者/追随者模型(Leader/Followers)

这几天翻了些文章,发现对领导者/追随者模型说的比较少,下面就这个模型打个比方:

  1. 话说一个地方有一群有组织无纪律的人从事山贼这个很有前途的职业。
  2. 一般就是有一个山贼在山路口察看,其他人在林子里面睡觉。
  3. 假如发现有落单的过往客商,望风的山贼就会弄醒一个睡觉的山贼,然后自己去打劫。
  4. 醒来的山贼接替作望风的事情。
  5. 打劫的山贼搞定以后,就会去睡觉,直到被其他望风的山贼叫醒来望风为止。
  6. 有时候过往客商太多,而山贼数量不够,有些客商就能侥幸平安通过山岭(所有山贼都去打劫其他客商了)。

继续阅读 »

逆向思维—-魔兽世界封包分析(2)

本文作者:sodme 本文出处:http://blog.csdn.net/sodme 声明:本文可以不经作者同意任意转载、复制、传播,但任何对本文的引用均须注明本文作者、出处及本行声明信息。谢谢!

封包分析的手段,说简单也挺简单的,那就是:比较!要不断地从不同的思维角度对封包进行对比分析,要充分发挥你的想象力不断地截取自己需要的包进行比较。不仅要作横向(同类)的比较,还要作纵向(不同类)的比较。即时对于同一个包,也要不断地反复研究。
继续阅读 »

逆向思维–魔兽世界封包分析(1)

本文作者:sodme 本文出处:http://blog.csdn.net/sodme 声明:本文可以不经作者同意任意转载,但任何对本文的引用都须注明作者、出处及此声明信息。谢谢!!

特别声明:   本人非常欣赏暴雪及他们的游戏,之所以写这个文章,是想让大家了解一些网络封包分析方面的常见方法以及学习暴雪游戏在网络处理方面的经验,偶认为作为一个网络编程者,熟练掌握封包分析的工具和方法应该是其基本功之一。本文所列的所有封包分析内容,全部是采用普通黑箱方式即可得来的,并未涉及对魔兽世界可执行程序的逆向工程。同时,除此文涉及的内容外,本人拒绝向任何人透露更详细的关于魔兽世界封包方面的更多内容,有兴趣者请自己进行相关的试验,本人在此文中也将尽量避免公开敏感的封包内容及相关加解密算法。谨以此文献给忠爱的暴雪!
继续阅读 »