public class MarshalEndian
{
private readonly int ConstLength = 12; //最小包长
private List<byte> leftBytes = new List<byte>(); //历史遗留包数据
private readonly byte head1 = 0x1F; //自定义头1
private readonly byte head2 = 0xF2; //自定义头2
private readonly byte foot1 = 0x0A; //自定义尾1
private readonly byte foot2 = 0x0D; //自定义尾2
public byte[] Encode(SocketPackage msg)
{
var buffer = new List<byte>();
buffer.Add(head1);
buffer.Add(head2);
//将包类型 转换为 byte 数组 tobytes 需要自己编写
var arry = msg.toBytes();
buffer.AddRange(arry);
buffer.Add(foot1);
buffer.Add(foot2);
return buffer.ToArray();
}
public List<SocketPackage> GetSendSockets(byte[] buffer, int len)
{
//拷贝当前有效数据
var bytes = new byte[l
Socket 高效拆解包
最新推荐文章于 2025-03-21 00:21:01 发布