/// <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); //} } }
public void Encrypt(Cryptography.ConquerCrypto Crypto) { Crypto.Encrypt(_buffer); }