private void SendPacket(Packet.Packet packet) { byte[] buffer = packet.Build(); Logger.Trace("Client packet: " + Packet.Utils.prettyHex(buffer)); System.IO.BinaryWriter bw = new System.IO.BinaryWriter(Connection.GetStream()); bw.Write((Int16)(buffer.Length + 2)); bw.Write(Blowfish.Encrypt(buffer)); }
private void GameSendThread() { BinaryWriter bw = new BinaryWriter(Connection.GetStream()); while (Running) { Packet.Packet packet = null; lock (SendQueue) if (SendQueue.Count > 0) { packet = SendQueue.Dequeue(); } if (packet == null) { try { System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); } catch (System.Threading.ThreadInterruptedException) { //everything worked perfect } continue; } var buffer = packet.Build(); Logger.Trace("Client packet: " + Packet.Utils.prettyHex(buffer)); if (Crypted) { Encoder.Encrypt(buffer); } int pl = buffer.Length + 2; bw.Write((Int16)pl); bw.Write(buffer); if (Sended != null) { Sended(this, packet); } } }