#Socket
Cui晨
路漫漫其修远兮,吾将上下而求索。
展开
-
OkSocket接收所有数据,可以不固定协议头;
这个是OkSocket的源码地址:https://github.com/xuuhaoo/OkSocket 这个框架必须要固定包头,我们在实际的使用中一般都是固定包头的,但是为了方便调试或者没有固定包头的,我们需要修改一下源码; 把源码中的这个接收消息类'ReaderImpl'修改一下: public class ReaderImpl extends AbsReader { pri...原创 2020-02-13 18:10:15 · 2873 阅读 · 0 评论 -
Android OkSocket设置消息头,获取消息体长度;使用OkSocket实现JT808协议通讯;
查看Android JT808协议通讯请移步; OkSocket需要设置解析头: //设置自定义解析头 OkSocketOptions.Builder okOptionsBuilder = new OkSocketOptions.Builder(mOkOptions); okOptionsBuilder.setReaderProtocol(new IReaderProtocol() { ...原创 2020-03-06 17:55:06 · 2576 阅读 · 0 评论 -
Android JT808协议通讯,使用OkSocket实现长连接;
先看一下JT808数据的组成和OkSocket接收消息方式; 1、JT808数据的组成 标识位采用0x7e 表示,若校验码、消息头以及消息体中出现0x7e,则要进行转义处理,转义 规则定义如下: 0x7e <————> 0x7d后紧跟一个0x02; 0x7d <————> 0x7d后紧跟一个0x01。 转义处理过程 如下: 发送消息时:消息封装...原创 2020-03-10 14:51:57 · 1329 阅读 · 0 评论 -
Socket 粘包 拆包;
为什么会粘包?举个栗子: Socket连接成功就相当于通讯管道已经建立,客户端就一直从管道中取数据,如果数据一次没有取完就会发生遗留,这些遗留的数据就会和下次的数据包一起传输过来,然后就粘包了; 再看个数据: 采用0x7e 表示,若校验码、消息头以及消息体中出现0x7e,则要进行转义处理,转义 规则定义如下: 0x7e <————> 0x7d后紧跟一个0x02; ...原创 2020-03-10 10:44:23 · 752 阅读 · 0 评论