mina中游戏客户端服务端数据交互流程
====================================================================================
CLIENT
encode :
用的方法是: AbstractMessageEncoder.encode()、PackageBodyMessageEncoder.*
发送的对象是:ReqServerMsg [id=1001, num=5, param=测通了吗?]
具体encode流程:
buf.put(Constants.PACKAGE_TAG.getBytes("UTF-8"));//57byte的字符串
byte[] messageByteArr = getBufArray(getMessages(message));
buf.putInt(messageByteArr.length);//4个字节的int值
buf.put(messageByteArr);//31个字符的数组
sendToServer
====================================================================================
SERVER
收到数据长度: 92
用到的方法是:PackageBodyMessageUtil.messageReceived()
字节大小: 57 4 4 4 4 19
值: tgw_l7_.. 31 6001 1001 5 测通了吗?
备注: (包头,str) (包体len) 协议号 id num param
decode 结果 : ReqServerMsg [id=1001, num=5, param=测通了吗?]
====================================================================================
doSth
====================================================================================
返回给CLIENT的对象是:
RespServerMsg [a=1, b=2, c=3, testBean=[TestBean [m=33, n=44]]]
encode:
用的方法是:PackageBodyMessageUtil.encode()
具体encode流程:
byte[] messageByteArr = getBufArray(getMsgBody(message));
buf.putInt(messageByteArr.length + 4); // 长度(协议号+协议体)(包体len)28
buf.putInt(message.getMsgNum()); //6002
buf.putInt(messageByteArr.length); //24
buf.put(messageByteArr); //44 33 1 3 2 1
发送的数据长度为: 36
backToClient
====================================================================================
CLIENT
收到数据长度: 36
用到的方法是:AbstractMessageDecoder.*、PackageBodyMessageDecoder.decodeBody()
字节大小: 4 4 4 4 4 4 4 4 4
值: 24+4 6002 24 44 33 1 3 2 1
备注: (包体len) 协议号 (list.size)
decode 结果: RespServerMsg [a=1, b=2, c=3, testBean=[TestBean [m=33, n=44]]]
====================================================================================
mina中游戏客户端服务端数据交互流程的更多相关文章
- hadoop rpc协议客户端与服务端的交互流程
尽管这里是hadoop的rpc服务,但是hadoop还是做到了一次连接仅有一次认证.具体的流程待我慢慢道来. 客户端:这里我们假设ConnectionId对应的Connection并不存在.在调用ge ...
- angularJs中自定义directive的数据交互
首先放官方文档地址:https://docs.angularjs.org/guide/directive 就我对directive的粗浅理解,它一般用于独立Dom元素的封装,应用场合为控件重用和逻辑模 ...
- [Android]使用Spring for Android改善数据交互流程
如果开发一个和服务端有数据交互android应用,流程通常是这样的:界面收集用户数据之后,将它转换成JSON或者XML格式的字符串,以HTTP的方式提交给服务端,获得返回的文本数据,再将数据解析为ja ...
- Androidclient和server端数据交互的第一种方法
网上有非常多样例来演示Android客户端和server端数据怎样实现交互只是这些样例大多比較繁杂,对于刚開始学习的人来说这是不利的.如今介绍几种代码简单.逻辑清晰的交互样例,本篇博客介绍第一种: 一 ...
- Vue中独立组件之间数据交互
独立组件之间数据交互:通过自定义事件 组件A中的[数据],传递给组件B 1.创建组件A,组件B 2.组件B在实例创建完成时就开始监听事件[等待接收数据]:钩子 3.组件A中触发事件,发送数据 注意:接 ...
- struts2(三)---struts2中的服务端数据验证框架validate
struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证. ActionSupport类提供了一个validate()方法,当我们需要在某一个acti ...
- FPGA与MATLAB数据交互高效率验证算法——仿真阶段
之前博文是对基本设计技巧的总结和一些小设计随笔,内容有点杂,缺乏目的性.本来后续计划设计几个小项目,但导师的任务比较紧,所以为了提高效率,后续博客会涉及到很多算法方面的设计与验证的内容,主要关于OFD ...
- 教你如何在React及Redux项目中进行服务端渲染
服务端渲染(SSR: Server Side Rendering)在React项目中有着广泛的应用场景 基于React虚拟DOM的特性,在浏览器端和服务端我们可以实现同构(可以使用同一份代码来实现多端 ...
- 测开之路一百五十四:ajax+json前后台数据交互
在实际工作中,前后端数据交互大部分都是用的json格式,后端把数据处理完后,把json传给前端,前端再解析 项目结构 models里面加入把数据转为字典的方法 from datetime import ...
随机推荐
- 敏捷组织中PMO应遵循的准则
敏捷改变了人们的工作方式,不仅仅是开发部门,而且还包括其它的部门,例如HR.财务以及PMO等.在大多数组织中,PMO是一个控制体.它指导项目团队的规范.模板以及流程.目前,大多数的IT组织都敏捷化了. ...
- SimpleDateFormat转换时间格式
SimpleDateFormat有两个常用的方法parse和format 其中SimpleDateFormat在创建时有一下集中格式可以选择 SimpleDateFormat sdf = new Si ...
- grails 优缺点分析
Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring.Hibernate等开源框架之上,是一个高生产力一站式框架. 易于使用的基于Hibernate的对 ...
- tensorflow中的基本概念
本文是在阅读官方文档后的一些个人理解. 官方文档地址:https://www.tensorflow.org/versions/r0.12/get_started/basic_usage.html#ba ...
- 标题栏显示icon
<link rel="shortcut icon" href="/favicon2.ico"/><link rel="bookmar ...
- swift实现水仙花数
//: Playground - noun: a place where people can play import Cocoa for var a in 1...4{ var b = 4 - a ...
- CMA-ES 算法
CMA-ES 算法 一.算法介绍 CMA-ES是Covariance Matrix Adaptation Evolutionary Strategies的缩写,中文名称是协方差矩阵自适应进化策略,主要 ...
- sed awk 样例
sed [options] '[action]' filename options: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕. -e:允 ...
- Android中Service通信(二)——绑定Service进行通信
一.把输入文本的数据同步到服务的实例(如何执行服务的内部代码) 绑定服务比启动服务更加方便高效,绑定服务中的直接方法调用比Intent作为载体传输更为快捷得多. 1.activity_main.xml ...
- 调用手机在线API获取手机号码归属地信息
手机在线(www.showji.com)始创于2001年,发展至今已拥有国内最准确.号段容量最大的手机号码归属地数据库系统, 目前号段容量将近33万条,每月保持两次以上规模数据更新,合作伙伴包括:百度 ...