public DePacketor CreateDePacketor() { DePacketor gamepackDePacketor = new DePacketor(); gamepackDePacketor.SetPackHeadPreLength(GetPackHeaderSize()); gamepackDePacketor.SetPackTailLength(0); gamepackDePacketor.SetGetPackDataLengthCallBack(GetPackDataLength); gamepackDePacketor.SetSetDataLengthToPackHeadCallBack(SetDataLengthToPackHead); gamepackDePacketor.SetMsgProcesser(this); return(gamepackDePacketor); }
int GetPackDataLength(DePacketor dePacketor, byte[] pack, int offset, int packLen, out int realPackHeadLen) { int type; short dataSize; ByteStream readStream = new ByteStream(pack, offset, packLen); readStream.Read(out type); readStream.Read(out dataSize); readStream.ReadAlignBytes(); realPackHeadLen = readStream.GetNumberOfCurtBytes(); return(dataSize); }