`
maozilee
  • 浏览: 247244 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

开源框架Mina入门第二篇[自定义协议的关键编解码]

阅读更多


    用MINA开发通信程序,很重要的一点是自定义编码,因为他可以完成不同平台的数据交换,如手机软件终端,linux服务端,其中手机终端可能是android开发,iphone,sybian,所以,经常需要直接二进制处理。

    在服务器端中,最重要的就是编解码!在“编码”和“解码”中的一个重要问题是如何在字节流中判断消息的边界。通常来说,有三种办法解决这个问题:

  • 使用固定长度的消息。这种方式实现起来比较简单,只需要每次读取特定数量的字节即可。
定长协议----如:心跳包[10Bytes]
  • 使用固定长度的消息头来指明消息主体的长度。比如每个消息开始的 4 个字节的值表示了后面紧跟的消息主体的长度。只需要首先读取该长度,再读取指定数量的字节即可。

包头(表示本信息的总长度,一般情况下为[1-4字节]) 包内容[包头所指定的长度]

  • 使用分隔符。消息之间通过特定模式的分隔符来分隔。每次只要遇到该模式的字节,就表示到了一个消息的末尾。
数据+";"+数据+“;”

 

 

 

分享到:
评论
1 楼 sziitjiang 2012-08-21  
您好,看到您的文章,给个评论,挺好的
不过要是都有个例子简单举例说明一下就更好了,让我们学习学习,还是代码更能够说明真理呀

相关推荐

Global site tag (gtag.js) - Google Analytics