J2ME版中国移动飞信通信协议 (2) 数据包格式

J2me版飞信(以下简称飞信)的通信协议,基于HTTP协议
。它和服务器之间的通信,是通过POST这个动作来完成的 ,需要传送的数据,放在POST请求的data部分。

每个请求都是有客户端发起的,POST出数据之后 ,接受服务器的响应,然后关闭连接。对响应进行处理。

=== 数据包格式 ===

包含在HTTP请求(或者响应)DATA部分的数据格式:



可以看到,每个包都分为Header和Payload两部分。
header是固定长度4个字节,其中,前三个字节 (Length)表示整个数据包的程度,包括Header本身的长 度,第4个字节(Code) 表示请求的命令吗。表示长度的三个字节是按大端(big -endian)的格式(也就是网络字节序)来表示一个整数的 。具体说就是,字节0表示长度的最高 8位,字节1表示长度的中间8位,字节2表示长度的低8位 。字节3表示请求码。

这个长度可以表示的很大,当然,暂时还用不上这么大。

Header后的有效数据(Payload)是变长的 。该部分长度可以为0。一些简单的命令比如退出登录 ,只需要设置Code为对应的代码,Payload部分是不需要数 据的。

服务器返回的数据格式和客户端发出的具有相同的格式。

=== 特殊的包 ===
在服务器响应中,有一个特殊的包,Code为 -1。 Code 为-1的包,实际上是有多个包组成的。需要把这些包全部分离出来 ,逐个处理它们。


** 我不清楚是不是可以用Code为-1的包同时发送多个包到服务器 ,不过在飞信的代码里,没有看到这样的应用,只有从服务器收到的响 应中有code为 -1的包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值