java socket 包头包体_自定义协议封装包头、包体

该博客介绍了如何使用Java实现自定义TCP协议,包括封包和拆包的过程。封包过程中,定义了包头和包体,包头由两个特定的字节标识,接着是消息长度和消息ID。拆包时,从输入字节流中读取包头,判断并解析包体,处理剩余字节以确保完整读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.IO;4 usingSystem.Text;5

6 //消息解析器

7 public classMarshalEndian8 {9 //用于存储剩余未解析的字节数

10 private List _LBuff = new List(2);11 //默认是utf8的编码格式

12 private UTF8Encoding utf8 = newUTF8Encoding();13

14 //包头1

15 const Int16 t1 = 0x55;16 //包头2

17 const Int16 t2 = 0xAA;18 //字节数常量 两个包头4个字节,一个消息id4个字节,封装消息长度 int32 4个字节

19 const Int32 ConstLenght = 8;20

21 public voidDispose()22 {23 this.Dispose(true);24 GC.SuppressFinalize(this);25 }26

27 protected virtual void Dispose(boolflag1)28 {29 if(flag1)30 {31 IDisposable disposable2 = this.utf8 asIDisposable;32 if (disposable2 != null) { disposable2.Dispose(); }33 IDisposable disposable = this._LBuff asIDisposable;34 if (disposable != null) { disposable.Dispose(); }35 }36 }37

38 public byte[] Encode(TSocketMessage ms

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值