Exemplo n.º 1
0
        /// <summary>
        /// Sends data to the client.
        /// </summary>
        /// <param name="buffer">The buffer to send.</param>
        public void Send(DataPacket buffer)
        {
            //lock (lockme)
            //{
            //bool PacketSend = false;

            //try
            //{
            if (buffer.BufferLength > 65535)
            {
                Disconnect("Too big packet...");
                return;
            }

            byte[] Buffer = buffer.Copy();

            lock (send_lock)
            {
                if (Crypto != null)
                {
                    //lock (Crypto)
                    Crypto.Encrypt(Buffer);
                }


                try
                {
                    // (PacketSend = Monitor.TryEnter(this, 50))
                    //{
                    if (clientSocket.Connected)
                    {
                        clientSocket.Send(Buffer);
                        //clientSocket.BeginSend(Buffer, 0, Buffer.Length, SocketFlags.None, new AsyncCallback(Send_Callback), Buffer);
                    }
                    else
                    {
                        Disconnect("Not Connected.");
                    }
                }
                catch (SocketException se)
                {
                    Disconnect(string.Format("Failed to send packet... Error: {0}", se.SocketErrorCode.ToString()));
                }
                //
                //}
                //finally
                //{
                //	if (!PacketSend)
                //		Disconnect("Lag."); // lag
                //	else
                //		Monitor.Exit(this);
                //}
            }
        }
Exemplo n.º 2
0
 public void Encrypt(Cryptography.ConquerCrypto Crypto)
 {
     Crypto.Encrypt(_buffer);
 }