Exemple #1
0
        public void Send(ClientConnection conn, byte[] data, int index, int count)
        {
            var _packetCrypto = new PacketCrypto(conn.Account.SessionKey);

            if (conn.Connected)
            {
                if (conn.Encrypted)
                {
                    _packetCrypto.Encrypt(data, index, count);
                }
                conn.Stream.Write(data, index, count);
                conn.Stream.Flush();
            }
        }
        private byte[] Encode(int size, int opcode)
        {
            var index   = 0;
            var newSize = size + 2;
            var header  = new byte[4];

            if (newSize > 0x7FFF)
            {
                header[index++] = (byte)(0x80 | (0xFF & (newSize >> 16)));
            }

            header[index++] = (byte)(0xFF & (newSize >> 8));
            header[index++] = (byte)(0xFF & (newSize >> 0));
            header[index++] = (byte)(0xFF & opcode);
            header[index]   = (byte)(0xFF & (opcode >> 8));

            if (PacketCrypto != null)
            {
                header = PacketCrypto.Encrypt(header);
            }

            return(header);
        }