Example #1
0
        public bool FromBuffer(byte[] buffer, long offset, long size)
        {
            serializer.SetBuffer(buffer, offset, size);

            if (buffer[offset] != 0x38)
            {
                IsMessage    = false;
                connectionID = serializer.ReadInt();
                data         = new byte[size - 4];
                Buffer.BlockCopy(buffer, (int)offset + 4, data, 0, (int)size - 4);
                //data = serializer.ReadBytes((int)size-4);
                return(false);
            }
            serializer.ReadByte(); // read heard 00111000
            methodType = (NATPMethod)serializer.ReadByte();
            if (!Enum.IsDefined(typeof(NATPMethod), methodType))
            {
                IsMessage          = false;
                serializer.bytePos = (int)offset;
                connectionID       = serializer.ReadInt();
                data = new byte[size - 4];
                Buffer.BlockCopy(buffer, (int)offset + 4, data, 0, (int)size - 4);
                //data = serializer.ReadBytes((int)size - 4);
                return(false);
            }
            IsMessage = true;
            ReadAttribute();
            data = null;
            return(true);
        }
Example #2
0
 public ServerMessage(NATPMethod m)
 {
     methodType = m;
 }