Пример #1
0
        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));
        }
Пример #2
0
        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);
                }
            }
        }