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);
        }