/// <summary>
        ///     Sends a packet down this connection.
        /// </summary>
        /// <param name="packet">Packet to send down this connection.</param>
        public void SendPacket(NetworkPacket packet)
        {
            if (_socket == null || (_socket.Connected == false && _isListening == false && _isConnected == true))
                return;

            try
            {
                byte[] data = packet.Encode();
                _socket.Send(data);
                _bytesSent += data.Length;
                _globalBytesSent += data.Length;
            }
            catch (Exception) {}
        }