- 博客(50)
- 资源 (1)
- 收藏
- 关注
转载 vs2010编译qt
configure -debug-and-release -opensource -platform win32-msvc2010 -ltcg -plugin-sql-odbc -plugin-sql-sqlite -no-qt3support
2011-11-06 21:56:10
798
原创 Windows下编译 MySQL 5.5.x
1.官网下载 mysql-5.5.x.zip的源码包并解压2.进入mysql-5.5.x目录3.命令行运行 >cmake . -G "Visual Studio 9 2008"4.开启VS命令行(visual studio 2008 command prompt)5 . > devenv MySQL.sln /build Release6.命令行没有任何提示,直接返回,但此
2011-10-25 10:26:22
775
转载 游戏对象的实现 (补)
有关游戏对象实现的描述,前面两篇文章中说的不甚清楚,主要是一直都要引用网上能够找到的资料来进行描述,以避免与公司引起不必要的麻烦。所以语言有些拼凑的感觉,举的例子也很不恰当,今天正好看到了游戏编程精粹五和六上的两篇文章,内容都差不多,>和>,说的也是我上两篇文章想要描述的内容,所
2011-10-09 15:19:02
687
转载 游戏对象的实现 (下)
在上一篇中做了个简单描述,还有一种游戏对象实现方法是使用通用的实体对象。 在游戏编程精粹四有三篇文章讲到了实体以及实体管理的实现方案,其中一篇文章说到了实体管理系统的四大要素:定义实体怎样沟通的实体消息,实现一实体类代码和数据的实体代码,维护已经注册在案的实体类
2011-10-09 15:13:24
674
转载 游戏对象的实现 (上)
狭义的游戏对象是指游戏世界中所能看到及可交互的对象,如玩家、怪物、物品等,我们这里也主要讨论这类对象在服务器上的组织及实现。 在大部分的MMOG中,游戏对象的类型都大同小异,主要有物品、生物、玩家等。比如在wow中,通过服务器发下来的GUID我们可以了解到,游戏
2011-10-09 15:09:02
724
转载 再谈登录服的实现
离我们的登录服实现已经太远了,先拉回来一下。 关于登录服、大区服及游戏世界服的结构之前已做过探讨,这里再把各自的职责和关系列一下。 GateWay/WorldServer GateWay/WodlServer LoginS
2011-10-09 15:04:44
586
转载 服务器公共组件 -- 事件与信号
关于这一节,这几天已经打了好几遍草稿,总觉得说不清楚,也不好组织这些内容,但是打铁要趁热,为避免热情消退,先整理一点东西放这,好继续下面的主题,以后如果有机会再回来完善吧。本节内容欠考虑,希望大家多给点意见。 有些类似于QT中的event与signal,我将一些
2011-10-09 15:01:34
547
转载 服务器公共组件实现 -- 状态机
有关State模式的设计意图及实现就不从设计模式中摘抄了,我们只来看看游戏服务器编程中如何使用State设计模式。 首先还是从mangos的代码开始看起,我们注意到登录服在处理客户端发来的消息时用到了这样一个结构体: struct AuthHandle
2011-10-09 14:59:56
633
转载 服务器公共组件实现 -- 发包的方式
前面一直都在说接收数据时的处理方法,我们应该用专门的IO线程,接收到完整的消息包后加入到主线程的消息队列,但是主线程如何发送数据还没有探讨过。 一般来说最直接的方法就是逻辑线程什么时候想发数据了就直接调用相关的socket API发送,这要求服务器的玩家对象中保
2011-10-09 14:58:50
598
转载 服务器公共组件实现 -- 环形缓冲区
消息队列锁调用太频繁的问题算是解决了,另一个让人有些苦恼的大概是这太多的内存分配和释放操作了。频繁的内存分配不但增加了系统开销,更使得内存碎片不断增多,非常不利于我们的服务器长期稳定运行。也许我们可以使用内存池,比如SGI STL中附带的小内存分配器。但是对于这种按照严格的先进先
2011-10-09 14:55:25
617
转载 服务器公共组件实现 -- 消息队列
既然说到了消息队列,那我们继续来稍微多聊一点吧。 我们所能想到的最简单的消息队列可能就是使用stl的list来实现了,即消息队列内部维护一个list和一个互斥锁,putMessage时将message加入到队列尾,getMessage时从队列头取一个messag
2011-10-09 14:54:35
872
转载 服务器公共组件实现 -- 继续来说主循环
前面我们只简单了解了下mangos登录服的程序结构,也发现了一些不足之处,现在我们就来看看如何提供一个更好的方案。 正如我们曾讨论过的,为了游戏主逻辑循环的流畅运行,所有比较耗时的IO操作都会分享到单独的线程中去做,如网络IO,数据库IO和日志IO等。当然,也有
2011-10-09 12:49:54
1252
转载 服务器公共组件实现 -- mangos的游戏主循环
当阅读一项工程的源码时,我们大概会选择从main函数开始,而当开始一项新的工程时,第一个写下的函数大多也是main。那我们就先来看看,游戏服务器代码实现中,main函数都做了些什么。 由于我在读技术文章时最不喜看到的就是大段大段的代码,特别是那些直接Ctrl+C
2011-10-09 12:49:03
1345
转载 登录服的设计(1) -- 功能需求
正如我们在前面曾讨论过的,登录服要实现的功能相当简单,就是帐号验证。为了便于描述,我们暂不引入那些讨论过的优化手段,先以最简单的方式实现,另外也将基本以mangos的代码作为参考来进行描述。 想象一下帐号验证的实现方法,最容易的那就是把用户输入的明文用帐号和密码
2011-10-09 12:38:09
654
转载 服务器结构探讨(6) -- 一点杂谈
再强调一下,服务器结构本无所谓好坏,只有是否适合自己。我们在前面探讨了一些在现在的游戏中见到过的结构,并尽我所知地分析了各自存在的一些问题和可以做的一些改进,希望其中没有谬误,如果能给大家也带来些启发那自然更好。 突然发现自己一旦罗嗦起来还真是没完没了。接下来先
2011-10-09 12:26:19
630
转载 服务器结构探讨(5) -- 最终的结构
如果我们就此打住,可能马上就会有人要嗤之以鼻了,就这点古董级的技术也敢出来现。好吧,我们还是把之前留下的问题拿出来解决掉吧。 一般来说,当某一部分能力达不到我们的要求时,最简单的解决方法就是在此多投入一点资源。既然想要更多的连接数,那就再加一台网关服务器吧。新增
2011-10-09 12:20:46
593
转载 服务器结构探讨(4) -- 继续世界服
都已经看出来了,这种每切换一次地图就要重新连接服务器的方式实在是不够优雅,而且在实际游戏运营中也发现,地图切换导致的卡号,复制装备等问题非常多,这里完全就是一个事故多发地段,如何避免这种频繁的连接操作呢? 最直接的方法就是把那个图倒转过来就行了。客户端只需要连接
2011-10-09 12:19:05
645
转载 服务器结构探讨(3) -- 简单的世界服实现
讨论了这么久我们一直都还没有进入游戏世界服务器内部,现在就让我们来窥探一下里面的结构吧。 对于现在大多数MMORPG来说,游戏服务器要处理的基本逻辑有移动、聊天、技能、物品、任务和生物等,另外还有地图管理与消息广播来对其他高级功能做支撑。如纵队、好友、公会、战场
2011-10-09 12:04:48
605
转载 服务器结构探讨(2) -- 登录服的负载均衡
回想一下我们在玩wow时的操作流程:运行wow.exe进入游戏后,首先就会要求我们输入用户名和密码进行验证,验证成功后才会出来游戏世界列表,之后是排队进入游戏世界,开始游戏... 可以看到跟前面的描述有个很明显的不同,那就是要先验证帐号再选择游戏世界。这种结构也
2011-10-09 12:00:59
686
转载 服务器结构探讨(1) -- 开篇
关于服务器技术的文章不怎么好找,做个备忘转载自 http://bbs.gameres.com/showthread.asp?threadid=93775 有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完
2011-10-09 11:57:27
643
原创 QVariant 存放指针
关于QVariant存放指针,突然想到一个简单的方法,那就是使用union直接上代码union MyData{ int Address; MyClass* Pointer;}...//存MyClass* myData = new MyClass
2011-08-01 15:31:40
6683
原创 eclipse + maven + glassfish embedded
pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/
2011-07-21 00:21:19
2291
转载 GlassFish maven
http://weblogs.java.net/blog/arungupta/archive/2008/11/totd_56_simple.htmlhttp://archive.cnblogs.com/a/1918567/
2011-07-20 22:43:46
723
原创 BackTrack5-KDE-X64 无法启动的问题
rm /root/.kde/cache-root/icon-cache.kcacherm /root/.kde/cache-root/plasma_theme_Volatile.kcache
2011-06-26 13:07:00
796
转载 A*寻路算法详解
原文出处:A* Pathfinding for Beginners 转自 http://blog.youkuaiyun.com/mynamelj/archive/2008/10/13/3071867.aspx 译者序 很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为学习人工智能的开始。 这篇文章非常知名,国内应该有不少人翻译过它,我没有查找,觉得翻译本身也是对自身英文水平的锻炼。经过努力,
2011-05-31 12:46:00
2693
转载 QString 与中文问题
转载 http://hi.baidu.com/cyclone/blog/item/9d7293130e5a498d6538dbf1.html(更新:本文的姊妹篇 Qt中translate、tr关系 与中文问题 )首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这
2011-05-16 12:29:00
908
转载 HTTP caching with Qt
<br /><br />转载至[http://labs.qt.nokia.com/2011/04/29/http-caching-with-qt/]<br /> <br /> <br /> <br />This is an in-depth article about how HTTP caching works in general and how it works with Qt.What is HTTP caching?<br />When a browser loads a Web page, th
2011-05-06 10:50:00
985
原创 使用removeItemWidget时, UI不刷新的问题
<br />使用removeItemWidget(item)时,UI上并不会将此item清除<br />解决的办法很简单,将此item的内存清掉就行了<br /> <br /> removeItemWidget(item);<br />delete item;
2011-05-06 09:31:00
6620
原创 QTableWidget 按数值或字符排序
<br />QTableWidgetItem* item = new QTableWidgetItem();<br />//按字母排序<br /> item->setText("2");<br />//按数值排序<br />item->setData(Qt::DisplayRole, 2); <br /><br />QTableWidget* widget = ....<br />widget->setItem(row, column, item );<br />//将第column列降序排列<br />w
2011-02-18 11:49:00
9800
转载 _CrtIsValidPointer 问题
从微软站点:检查指针有效性下面的示例使用 _CrtIsValidPointer 验证给定的内存范围对于读或写是否有效。_ASSERTE(_CrtIsValidPointer( address, size, TRUE );下面的示例使用 _CrtIsValidHeapPointer 验证指针指向本地堆(由 C 运行时库的这个实例创建和管理的堆;DLL 可以有它自己的库实例,因而也可以有它自己的、位于应用程序堆之外的堆)中的内存。该断言不仅捕捉空地址或超出边界的地址,还捕捉指向静态变量、
2011-01-14 18:28:00
1978
原创 gsoap 在一个客户端中调用多个service的解决方案
文档上关于这个的解决方案有两种1.使用wsdl2h将多个wsdl生成为一个wsdl.2.使用-q指定C++命名空间方法1.没有成功,而且还要解决一大堆的命名空间问题方法2.必须生成一个额外的没有命名空间的env,不然stdsoap2.cpp 编译不过.而且使用env会出很多问题,比如soap_header会调用env文件中的.而不会调用命名空间中我们自己生成的service的相关方法试个很久,最后找到个简单的解决方法,对于要手动更改soap header来说,十分方便好用先使用wsdl2h为不同的wsdl生
2010-12-28 15:49:00
8101
3
原创 gsoap 通过SSL双向认证调用service
通过>一文,最终得到以下文件ca.crt ca.keyserver.crtserver.keyclient.crtclient.key生成IIS需要的文件[root]# openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx将client.pfx ca.crt 传到IIS机器上,在证书的1.4.7项上导入ca.crt ,在第一项上导入client.pfxIIS 使用
2010-12-25 17:59:00
5838
转载 SSL网络架设
撰写者信息:Alin Fang (Fang Yunlin)MSN: cst05001@hotmail.comG Talk: cst05001@gmail.comBlog: http://www.alinblog.cn/ 修改日期:10 Nov, 2008第1次修改 版权:GNU 声明:本人实验笔记,非权威文档。如有错误请告知。十分感谢! 特别说明:本实验全部采用RHEL5所带相关rpm包的脚本进行操作。openssl相关操作均由脚本完成,无须手工干预。实验环境:OS: Red Hat Enterprise
2010-12-25 17:03:00
4711
原创 openssl 证书
<br />我做好了,呵呵,下面是我写的笔记,转载请注明作者名:wingger<br /><br /><br />本文章在LINUX9+apache2.0.52,tomcat5.5.6,j2se1.5,openssl0.97上实验通证<br />本文的目的是为了交流,如有出错的地方,请指教<br />转载请注明出处,并保持文章的完整性<br />现在开始安装<br /><br />首先在安装之前要明白一些基本概念<br /><br />1、SSL所使用的证书可以是自己建的生成的,也可以通过一个商业性CA如V
2010-12-23 17:58:00
997
转载 PKI常见证书格式和转换
<br />PKCS 全称是 Public-Key Cryptography Standards ,是由 RSA 实验室与其它安全系统开发商为促进公钥密码的发展而制订的一系列标准,PKCS 目前共发布过 15 个标准。 常用的有:<br />PKCS#7 Cryptographic Message Syntax Standard<br />PKCS#10 Certification Request Standard<br />PKCS#12 Personal Information Exchange Syn
2010-12-22 21:44:00
780
原创 Qt 连接MySQL
QT连接MYSQL需要qsqlmysql4.dll驱动插件,但官方的SDK包中并未编译好,所以只能自己手动编译,其实过程也很简单。1.下载MySQL Community Server,安装时只需安装开发环境中的“C头文件/库” 就行.2.启动命令行 > cd %QTDIR%/src/plugins/sqldrivers/mysql > qmake "INCLUDEPATH+= C:/MYSQL/include" "LIBS+=C:/MYSQL/lib/opt/libmys
2010-12-15 09:57:00
909
原创 gSoap的“error LNK2001: 无法解析的外部符号 _namespaces”解决方法
<br />1. 在工程中定义 WITH_NONAMESPACES 宏<br />2.尝试 "#include "namp.nsmap" "<br />
2010-12-07 17:04:00
10035
原创 安装互不干扰的多系统
需要软件grub4dos-0.4.4TonPEXPgrubinst>制作引导U盘1.运行TonPEXP.exe, 选择安装到U盘(随便多大容量的都行)点击下一步,按图操作点击安装后会弹出格式化U盘的窗口,一定要选对U盘格式化完成后弹出写入引导窗口,选择U盘,按图来点击安装,等待操作完成>分区的划分分区划分 ||为主分区
2010-12-03 15:00:00
1320
原创 [Google Breakpad] crash_generation_app例子研究 -- 进程外和进程内dump的区别
<br />src/client/windows/tests/crash_generation_app下的例子编译失败,看了看,有些地方需要更改一下(以release为例)<br />1.C++ -> Code Generation -> Runtime Library -> Multi-threaded (/MT)<br />2. Linker -> Additional Library Directories -> ../../$(ConfigurationName)/lib<br />3. Linke
2010-09-02 16:49:00
3592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人