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