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


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

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

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

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

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值