openpoker开源项目 源代码解析
来源:互联网 发布:比特币算法漏洞 编辑:程序博客网 时间:2024/06/11 04:21
http://hpyhacking.iteye.com/blog/1166481
https://github.com/hpyhacking/openpoker -- 源码
最近主攻erlang编程,erlang在处理网络并发可谓具有语言上的天赋,而这恰恰能帮我解决很多游戏服务器中的问题,想必每一个接触过erlang的人都看过《轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统》,看完之后总有中跃跃欲试的冲动~ 这篇文章距今已经很久远了,但其中所描述的设计还是很实用的,erlang与game的结合这是一个非常好的参考资料,从对erlang的基础学习转变为研习源代码了。
这是一个系列文章,我会将从 openpoker 中所看所学所想记录下来,以便后续深入并参考~
有关openpoker项目的介绍,可以参考上文链接的文章,但那篇文章年代久远,作者早就悄无声息的更新了项目,文章中讲到的一些概念在新代码中没了踪影,看完了起个参考作用就成了,还是追着这个系列一点点的来看吧~
这个项目被作者放到了github上,一直有更新,但作者将开源协议变成了禁止商用。猛击此处你可以找到项目最新的源代码~
源码概况
首先看一下项目的目录结构,还是比较标准的erlang项目,doc目录有协议说明以及安装说明,src目录存放所有的源代码,我们首先要做的就是先大概看一下所有源代码~
光看源代码的名字就知道server.erl这个文件不简单,非常重要,另外要想理解这个项目exch.erl与game.erl还有g.erl这三个文件的组合也是理解的要点。
启动服务器
作者将Emakefile放到了src目录,个人感觉很不舒服,将此文件放到了项目根目录,并重写了此文件
- {'src/limit',[debug_info, {outdir, "ebin"}]}.
- {'src/exch',[debug_info, {outdir, "ebin"}]}.
- {'src/*',[debug_info, {outdir, "ebin"}]}.
这就是erlang的make文件,会根据源文件的日期进行比较进行编译,首先要理解为什么先编译 limit和exch两个模块,因为这是作者实现的两个自定义OTP模块,可以理解为OO语言中的Interface,后续的编译需要用到这两个模块。
不出意外在项目的根目录执行下列名就可以顺利编译项目了, 其中会有一些未使用的方法Warnning出现,那些都是作者用于对服务器进行控制预留的,不用理会。
- $> erl -make
编译成功开始运行服务器,注意编译成功后一定要将目录切换到ebin目录中
- $> erl -sname test
启动后按照doc/install中的说明需要先初始化数据库表,随后即可启动服务器
- erl > schema:install().
- erl > server:start("127.0.0.1", 8002)
至此一个扑克游戏的服务器以及运行起来了,客户端与8002端口通信即可。
首篇先到这里,之后我会更多的涉及对源码的思考与分析~
- openpoker开源项目 源代码解析
- openpoker开源项目 源代码解析
- openpoker 项目解析 1-简介
- openpoker 项目解析 2-功能模块清单
- openpoker 项目解析 3-整体分析
- openpoker 项目解析 4-开始游戏
- (Android 开源项目 android pn) Android pn源代码解析
- Java开源笔记:Spring源代码解析
- 开源Registry项目Harbor源代码结构解析
- Harbor Registry项目源代码结构解析
- 开源Registry项目Harbor源代码结构解析
- 开源项目源代码阅读方法
- 开源项目源代码阅读方法
- android: 大量开源项目源代码分享
- Android开源项目源代码分享
- android: 大量开源项目源代码分享
- 阅读开源项目源代码的方法
- swift源代码兼容开源项目清单
- 2017-11-26 DBA日记,oracle闪回查询的源头验证
- 55. Jump Game
- 6.15鸡兔同笼
- Java多线程同步---以银行存取钱的过程的简单代码实例
- 剑指offer每日一刷
- openpoker开源项目 源代码解析
- 【Java】HashMap源码分析(JDK1.8)
- 我在读pyTorch文档(二)
- Java8新特性
- MyBatis动态sql_foreach下foreach批量插入两种方式
- ubuntu上安装、卸载sublime3以及输入中文
- 04概要设计说明书(机房收费系统V2.1)
- 【笔试卷】JUREN
- mycat下载安装