github项目推荐:ratel

技术栈:Netty

码云:https://gitee.com/ainilili/ratel
Github:https://github.com/ainilili/ratel
相关介绍:https://github.com/ainilili/ratel/blob/master/PROTOCO_CN.md

一、项目介绍

Ratel 是一个可以在命令行中玩斗地主的项目。
可以使用小巧的jar包在拥有JVM环境的终端中进行游戏,支持人人对战和人机对战两种模式,丰富你的空闲时间!

二、目录框架

客户端(landlords-client)
event:客户端事件包
handle:客户端事件处理包
SimpleClient:客户端启动程序
基础包:landlords-common
channel:管道工具包
entity:实体类目录
enums:枚举类型目录
exception:异常处理目录
handler:业务处理,包含消息转码工具类
helper:工具类包,包括时间工具类等
print:打印工具包目录,包括格式化输出的工具类
robot:机器人出牌目录,人机对战时使用
transfer:类型转换工具包目录
utils:基础工具类,包括集合、正则等工具类

服务端(landlords-server)
event:服务端端事件包
handler:客户端事件处理包
robot:机器人出牌目录,人机对战时使用
timer:定时任务目录,计算房间存活时间。
SimpleServer:服务端启动程序

来自项目开发文档,最重要的架构图:

三、项目运行

1、clone项目

git clone https://github.com/ainilili/ratel.git

2、运行客户端和服务器

java -jar landlords-server/target/landlords-server-1.1.0.jar -p 1024
java -jar landlords-client/target/landlords-client-1.1.0.jar -p 1024 -h 127.0.0.1

3、开始打牌

四、Netty原理

1、初始化创建 2 个 EventLoopGroup,其中 parentGroup 用于 Accetpt 连接建立事件并分发请求。childGroup 用于处理 I/O 读写事件和业务逻辑。

2、基于 ServerBootstrap (服务端启动引导类),配置 EventLoopGroup、Channel 类型,连接参数、配置入站、出站事件 handler

3、绑定端口,开始工作

五、文章最后

想知道Netty怎么使用吗!!!
想了解如何使用适配器设计模式吗!!!
最重要的是想摸鱼打牌吗!!!
所有的一切都被放在了那里,去找吧!!!

项目需要对Netty框架有一定的了解。
Netty相关资料:https://blog.csdn.net/qq_35751014/category_9722459.html
入门项目:https://blog.csdn.net/awsl_6699/article/details/115603301

github项目ratel:JAVA实现斗地主相关推荐

  1. java外挂源码_2.7 万 Star!Github 项目源码辅助阅读神器

    [导语]:一款用于将 Github 项目代码以树形格式展示的浏览器插件. 简介 大家平时逛 GitHub 是否会觉得查看源代码的体验十分糟糕?项目文件需要一层层点击,返回也要一层层返回.这样不直观,也 ...

  2. github上创建java项目简单操作

    github上创建java项目简单操作 参考L: github上创建java项目简单操作 - CSDN博客 http://blog.csdn.net/qq_29392425/article/detai ...

  3. java项目 github_我们分析了30,000个GitHub项目-以下是Java,JS和Ruby排名前100的图书馆...

    java项目 github 开发人员每天面临的最大难题之一是要使用哪些软件库. 使用热门的新框架还是已经使用了十年的"无聊"的经过反复测试的框架? 使框架成功的主要因素之一是其用户 ...

  4. 我们分析了30,000个GitHub项目-以下是Java,JS和Ruby排名前100的图书馆

    开发人员每天面临的最大难题之一是要使用哪些软件库. 选择热门的新框架还是已经使用了10年的"无聊"的经过反复测试的框架? 使框架成功的主要因素之一是其用户和贡献者社区. 虽然很容易 ...

  5. 一个丧心病狂的Github项目:东北话编程,大写的服!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:开源最前线(ID:OpenSourceTop) 还记得12月 ...

  6. 有趣的Github项目万里挑一 !(附论文、项目链接)

    来源:PaperWeekly 本文共1000字,建议阅读5分钟. 本文为你介绍9个最新机器学习开源项目. 本文带你快速 get 每个精选Github项目的亮点和痛点,时刻紧跟 AI 前沿成果. 01 ...

  7. 优秀大数据GitHub项目一览

    企业正在迅速用新技术武装自己以便从大数据项目中获益.各行业对大数据分析人才的需求也迫使我们升级自己的技能以便寻找更好的职业发展.  跳槽之前最好先搞清楚一个岗位会接触到的项目类型,这样你才能掌握所有需 ...

  8. 利用Travis CI 让你的github项目持续构建(Node.js为例)

    Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列 ...

  9. 【杂谈】超过12个,150页深度学习开源框架指导手册与GitHub项目,初学CV你值得拥有...

    之前我们公众号输出了很多深度学习开源框架相关的内容,今天整理成技术手册给大家分享以方便阅读,下面是详细信息. 开源框架背景 现如今开源生态非常完善,深度学习相关的开源框架众多,光是为人熟知的就有caf ...

最新文章

  1. 【转】MYSQL入门学习之十:视图的基本操作
  2. 【清华大学王东老师】现代机器学习技术导论.pdf
  3. 什么是集成测试?非渐增式和渐增式有什么区别
  4. Odoo 菜单美化的扩展模块
  5. Review meeting还开不开?
  6. mysql语句优化方案(网上流传)
  7. VTK:可视化之CreateColorSeries
  8. 基于Walle的多渠道快速打包自动脚本
  9. linux进入命令是什么,linux进入目录的命令是什么
  10. Redis查看集群状态
  11. spring 启动进度_在Web浏览器中显示Spring应用程序启动的进度
  12. python requests cookie_python requests 带cookie访问页面
  13. OpenCV探索之路(十):图像修复技术
  14. jpg png webp_为在线图像删除PNG和JPG:使用WebP
  15. iOS连续上传多张图片
  16. Google 要放弃 Android 了?
  17. Solidity教程序列1 - 类型介绍
  18. 网站换服务器 备案,网站换服务器备案吗
  19. java日志篇(2)-JUL(java.util.logging)
  20. 详解TCP的四报文挥手

热门文章

  1. 数字IC后端需要学习什么?需要具备哪些技能?
  2. 生物岛实验室(省属)招聘电子工程师
  3. mac写python用什么软件_Mac安装软件,一条指令就搞定
  4. 报销差率费与会计借贷理解
  5. 什么是CDN,为什么用CDN,如何用CDN
  6. 被割裂的数据思维(古代战争中的应用)
  7. VPLS原理+两个实验
  8. sklearn笔记29 线性回归 天猫双十一销量预测
  9. 浅析Android字体加载原理
  10. 记一次git冲突解决