使用ByteArray实现数据的传输,以及协议的分解.
2010-01-30 14:53
726 查看
我们经常在处理数据的时候,很多情况下都会分解数据,比如,我要发送一个数据(游戏指令),玩家A森林种菜.在Java或者C++中,很多情况是分解字符串String.这个字符串可以写为: a-f-p .其意义为"player A ,space forest ,action plant".只要程序员明白 a-f-p的意义就行了,其余多的数据完全没必要发送,发送也只是浪费资源.通过String.split()函数分解字符串,获得a,就获得操作对象,获得f就获得场景,获得p就明白具体的操作.当然,a-f-p更确切的定义应当是协议而不是指令.因为指令需要具体操作的数据.故完整的指令应当是: a-f-p-1-rose-5.表示的意义就是"玩家A在森林场景的1号土地种下了5束玫瑰";
但,Java与AS之间的数据一般是通过二进制的ByteArray传输的.故分解的不再是String,而是ByteArray了.
如:AS代码分解ByteArray
但,Java与AS之间的数据一般是通过二进制的ByteArray传输的.故分解的不再是String,而是ByteArray了.
如:AS代码分解ByteArray
package cn.vicky.protocol.solution { import flash.utils.ByteArray; public class DecoderProtocol { private var actionProtocolCode:int=0x0; private var typeProtocolCode:int=0x0; private var noteProtocolCode:int=0x0; private var message:ByteArray; public function DecoderProtocol(dataPacket:ByteArray) { this.message=new ByteArray(); dataPacket.position=0; var pakageCount:int=dataPacket.readByte(); this.typeProtocolCode=dataPacket.readByte(); this.actionProtocolCode=dataPacket.readByte(); this.noteProtocolCode=dataPacket.readByte(); dataPacket.readBytes(message,0,dataPacket.bytesAvailable-1); } public function get ActionProtocol():int { return this.actionProtocolCode; } public function get TypeProtocol():int { return this.typeProtocolCode; } public function get NoteProtocol():int { return this.noteProtocolCode; } public function get Message():ByteArray { this.message.position=0; return this.message; } } }
相关文章推荐
- Android与Java 服务器使用Socket协议实现Json数据传输
- 使用Netty实现通用二进制协议的高效数据传输
- 使用Netty实现通用二进制协议的高效数据传输
- Linux下使用KCP协议传输数据的UDP编程优点以及使用细节
- 使用Netty实现通用二进制协议的高效数据传输
- 使用Netty实现通用二进制协议的高效数据传输
- 【Lucene】使用EasyUI和JQuery配合Lucene实现数据的分页查询以及高亮显示
- 使用Java实现网络传输数据的压缩
- GPRS所使用的数据传输协议
- Qt实现客户端/服务器端登录验证|数据传输使用md5加密
- 使用python实现http及ftp服务进行数据传输的方法
- 使用tar+pigz+ssh实现大数据的高效传输
- 使用JSON实现数据的跨域传输
- Scrapy 入门学习笔记(3) -- 使用 Item 类转换传输数据以及ItemLoader 机制解析
- 简单理解http请求及Socket,以及基本的数据传输协议,三次握手
- Android学习笔记---19_采用ListView实现数据列表显示,以及各种适配器使用,和如何写自己的适配器
- 【代码练习5】使用套接字实现客户端和服务器的数据传输
- TCP协议可靠性数据传输实现原理分析
- 【Lucene】使用EasyUI和JQuery配合Lucene实现数据的分页查询以及高亮显示
- GPRS所使用的数据传输协议