一种简单的可自定义的传输数据包格式定义封包拆包处理组件

组件地址

https://gitee.com/mier520/my-resource/tree/%E4%BC%A0%E8%BE%93%E6%95%B0%E6%8D%AE%E5%8C%85

说明

组件比较简单,但也很实用,下载使用即可。

介绍

一种简单的传输数据包的实现方法;
支持自定义数据包格式的定义;
已实现适配自定义包格式的数据的封包和拆包处理;
已实现简单的数据加解密处理;
已实现简单的数据解压缩处理;
可扩展数据加解密、数据解压缩处理;

使用预览

public class Test{
    public static void main(String[] args) {
        String str = "hell word ,你好世界!";
        //步骤一: 定义包格式
        MessageProtocol protocol = MessageProtocolBuilder.create().simple();
        //步骤二: 创建封包拆包对象
        MessageCoder coder = new MessageCoder(protocol);
        //步骤三: 封包
        byte[] bytes = coder.encode(str);
        System.out.println(Hex.byte2HexStr(bytes ," "));
        //步骤四: 拆包
        System.out.println(new String(coder.decode(bytes).getContent()));
    }
}

核心类介绍

MessageProtocol
本组件核心类,所有工作必然围绕该类展开;
数据包格式定义类,通过它实现个性化的数据包格式,以及展开后续的封包、拆包工作;
MessageProtocol提供了一个固定格式内容可变的数据包格式,使用时只需在格式内规定可变内容即可;
固定格式
消息头 + 正文长度 + [正文加密方法] + [正文压缩方法] +  [自定义内容] + 正文 + [消息结尾]
提示:MessageProtocol是定义数据包格式,而不是向这个格式内填充内容;
消息头
表示定义的数据包的开始标识符,可以是$a,$b ,$c等等,字符不限长度不限,具体由自己定义;
注意: 消息头不要太长影响到整个包的大小,也不能太平常化容易导致拆包不准确或错误;
正文长度
规定正文长度在数据包中占据的字节个数
这里传入的是一个整数,表示的是正文长度在数据包中所占据的字节个数,即将一个整数装换为字节数组的长度,长度越大能表示的整数值越大,则单个数据包传输的正文内容越大;
注意: 应当根据项目情况设定大小,但不能太大,单个数据包过大,容易丢包,解析出错,还会影响系统性能;
提示: 字节个数为1能传输256个字节的正文 ,字节个数为2等于64KB正文 ,字节个数为3等于16MB正文 ,字节数为4等于4GB正文;
建议: 字节个数为2更通用
其它
[] 为可选内容
[正文加密方法]、[正文压缩方法]、[自定义内容]都是定义所占据的字节个数,同正文长度;
正文 由封包时存入
[消息结尾] 同消息头
MessageCoder
数据包处理类,详情查看该类即可

扩展接口

MessageCipher
数据包正文加解密处理扩展接口,可实现私有的加解密方法,并在创建MessageCoder时传入即可;
注意:本组件已实现了一个简单的加解密处理类,SimpleMessageCipher是一个动态可变的AES加解密处理类,可保证每一条数据加密都是变化的,
但整体却是固定的,其核心是通过SuperCodeGenerator对象生成顺序的密钥,并在每一次加密时从中选取一条密钥进行加密。
SimpleMessageCipher只作为加解密扩展实现的示例为用户参考,切记不可用在正式项目中,作者也不对用户在正式项目中使用该用类所产生的问题负责;
SimpleMessageCipher只作为加解密扩展实现的示例为用户参考,切记不可用在正式项目中,作者也不对用户在正式项目中使用该用类所产生的问题负责;
SimpleMessageCipher只作为加解密扩展实现的示例为用户参考,切记不可用在正式项目中,作者也不对用户在正式项目中使用该用类所产生的问题负责;
所以如果正式项目需要对正文进行加密处理,请一定要更换加解密实现方法。
MessageCompressor
数据包正文解压缩处理扩展接口,可实现私有的解压缩方法,并在创建MessageCoder时传入即可;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值