Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1501
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-29 16:41
文章分类
文章存档

2014年(1)

我的朋友
最近访客

分类: Python/Ruby

2014-02-03 13:00:18

    最近主攻erlang编程,erlang在处理网络并发可谓具有语言上的天赋,而这恰恰能帮我解决很多游戏服务器中的问题,想必每一个接触过erlang的人都看过,看完之后总有中跃跃欲试的冲动~ 这篇文章距今已经很久远了,但其中所描述的设计还是很实用的,erlang与game的结合这是一个非常好的参考资料,从对erlang的基础学习转变为研习源代码了。

 

这是一个系列文章,我会将从 openpoker 中所看所学所想记录下来,以便后续深入并参考~

 

有关openpoker项目的介绍,可以参考上文链接的文章,但那篇文章年代久远,作者早就悄无声息的更新了项目,文章中讲到的一些概念在新代码中没了踪影,看完了起个参考作用就成了,还是追着这个系列一点点的来看吧~

 

这个项目被作者放到了github上,一直有更新,但作者将开源协议变成了禁止商用。你可以找到项目最新的源代码~

源码概况

 

首先看一下项目的目录结构,还是比较标准的erlang项目,doc目录有协议说明以及安装说明,src目录存放所有的源代码,我们首先要做的就是先大概看一下所有源代码~ 

 

光看源代码的名字就知道server.erl这个文件不简单,非常重要,另外要想理解这个项目exch.erl与game.erl还有g.erl这三个文件的组合也是理解的要点。

 

启动服务器

作者将Emakefile放到了src目录,个人感觉很不舒服,将此文件放到了项目根目录,并重写了此文件

  1. {'src/limit',[debug_info, {outdir, "ebin"}]}.
  2. {'src/exch',[debug_info, {outdir, "ebin"}]}.
  3. {'src/*',[debug_info, {outdir, "ebin"}]}.

这就是erlang的make文件,会根据源文件的日期进行比较进行编译,首先要理解为什么先编译 limit和exch两个模块,因为这是作者实现的两个自定义OTP模块,可以理解为OO语言中的Interface,后续的编译需要用到这两个模块。

 

不出意外在项目的根目录执行下列名就可以顺利编译项目了, 其中会有一些未使用的方法Warnning出现,那些都是作者用于对服务器进行控制预留的,不用理会。

  1. $> erl -make

启动后按照doc/install中的说明需要先初始化数据库表,随后即可启动服务器

  1. erl > schema:install().
  2. erl > server:start("127.0.0.1", 8002)

 

至此一个扑克游戏的服务器以及运行起来了,客户端与8002端口通信即可。

首篇先到这里,之后我会更多的涉及对源码的思考与分析~


文章来自:http://hpyhacking.iteye.com/blog/1166481

阅读(196) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~