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