Ejemplo n.º 1
0
        private void Desrialize(byte[] bytes, out int messageID, out byte seriousIndex, out byte[] dataBytes)
        {
            int offsetIndex = 0;

            messageID    = BitConverter.ToInt32(bytes, offsetIndex);
            offsetIndex += sizeof(int);

            seriousIndex = bytes[offsetIndex];
            offsetIndex += sizeof(byte);

            if (bytes.Length - 1 > offsetIndex)
            {
                MessageCompressType compressType = (MessageCompressType)bytes[offsetIndex];
                offsetIndex += sizeof(byte);
                MessageCryptoType cryptoType = (MessageCryptoType)bytes[offsetIndex];
                offsetIndex += sizeof(byte);

                dataBytes = new byte[bytes.Length - offsetIndex];
                Array.Copy(bytes, offsetIndex, dataBytes, 0, dataBytes.Length);

                dataBytes = netHandler.DecodeMessage(cryptoType, dataBytes);
                dataBytes = netHandler.UncompressMessage(compressType, dataBytes);
            }
            else
            {
                dataBytes = null;
            }
        }