Exemplo n.º 1
0
 private void RemoveClient(ClientRt rt)
 {
     register.Run(() =>
     {
         Logger.Trace("Client {0} disconnected", rt.EndPoint);
         clients.Remove(rt.EndPoint.ToString());
         rt.Dispose();
     });
 }
Exemplo n.º 2
0
 private void AcceptLoop()
 {
     while (true)
     {
         var client = server.AcceptTcpClient();
         register.Run(() =>
         {
             using (var disposer = new Disposer())
             {
                 disposer.Push(client);
                 var rt = new ClientRt(client, certificate, factory);
                 disposer.Push(rt.Dispose); //ensure cleanup order
                 clients.Add(rt.EndPoint.ToString(), rt);
                 rt.Run(() => RemoveClient(rt));
                 Logger.Trace("Client {0} connected", rt.EndPoint);
                 disposer.Clear();
             }
         });
     }
 }