Exemple #1
0
 public void Start(ITelnetClientFactory factory, int timeout = 3000)
 {
     if (!active)
     {
         // connections = new ExpirableClientsManager(timeout);
         //connections.Start(factory);
         active = true;
     }
 }
Exemple #2
0
        public void Start(ITelnetClientFactory factory)
        {
            clientsFactory = factory;
            active         = true;
            new Thread(() =>
            {
                while (active)
                {
                    Thread.Sleep(Timeout);
                    //delete from the servers list every server which is not necesarry;
                    var expireds = new List <Tuple <string, int> >();

                    foreach (var key in clients.Keys)
                    {
                        if (clients[key].Expired)
                        {
                            expireds.Add(key);
                        }
                        else
                        {
                            clients[key].setTimeout(Timeout);
                        }
                    }
                    foreach (var expired in expireds)
                    {
                        mutex.WaitOne();
                        try
                        {
                            var client = clients[expired];
                            if (client.Expired)
                            {
                                client.Client.Disconnect();
                                clients.Remove(expired);
                            }
                        }
                        finally
                        {
                            mutex.ReleaseMutex();
                        }
                    }
                }
            }).Start();
        }