public CBuffer Assembly() { CBuffer buf = CBuffer.Create(HeaderLength + BodyBuffer.Length); buf.Fill(HeaderBuffer); buf.Fill(BodyBuffer); return(buf); }
protected void _AssemblyHeader() { byte[] msgID = BitConverter.GetBytes(HeadID); HeaderBuffer.Fill(msgID, 2); byte[] len = BitConverter.GetBytes(Length); HeaderBuffer.Fill(len, 2); }
public bool FillPack(byte[] buffer, ref int offset, ref int count) { if (!this.HeaderBuffer.IsFull) { int fillSize = HeaderBuffer.Fill(buffer, offset, count, true); offset += fillSize; count -= fillSize; if (HeaderBuffer.IsFull) { _ParseHeader();//解析头以后才知道body的长度 BodyBuffer = CBuffer.Create((int)this.Length); } else { //头部数据没接收完成,继续解析 return(false); } } if (!this.BodyBuffer.IsFull) { int fillSize = BodyBuffer.Fill(buffer, offset, count, true); offset += fillSize; count -= fillSize; } return(this.BodyBuffer.IsFull); }
public CBuffer Clone() { CBuffer buf = CBuffer.Create(BufSize); buf.Fill(this); return(buf); }