public void ProcessClient(Socket client)
        {
            //System.Threading.Thread.Sleep(50); //Small delay so the process will be using 0-1% cpu usage at flood attack
            if (File_MaxConnections.AcceptConnection(client.RemoteEndPoint))
            {
                int ID = _clientList.Count;
                FileClients c = new FileClients(client, NetworkKey);
                _clientList.Add(ID, c);
                c.DisconnectHandle = OnDisconnect;
                c.ClientID = ID;

                settings.ClientsConnected++;
                Logger.AddLog(new LogInfo("Incoming client", "Accepted"));
            }
            else
            {
                client.Disconnect(false);
                client = null;
            }
        }
        public void ProcessClient(Socket client)
        {
            //System.Threading.Thread.Sleep(50); //Small delay so the process will be using 0-1% cpu usage at flood attack
            if (File_MaxConnections.AcceptConnection(client.RemoteEndPoint))
            {
                int         ID = _clientList.Count;
                FileClients c  = new FileClients(client, NetworkKey);
                _clientList.Add(ID, c);
                c.DisconnectHandle = OnDisconnect;
                c.ClientID         = ID;

                settings.ClientsConnected++;
                Logger.AddLog(new LogInfo("Incoming client", "Accepted"));
            }
            else
            {
                client.Disconnect(false);
                client = null;
            }
        }
 //This method is called by any client when its disconnected, this is done through a delegate thats set.
 private void OnDisconnect(FileClients client)
 {
     _clientList.Remove(client.ClientID);
 }
 //This method is called by any client when its disconnected, this is done through a delegate thats set.
 private void OnDisconnect(FileClients client)
 {
     _clientList.Remove(client.ClientID);
 }