Example #1
0
 private void AcceptConnections()
 {
     while (_running)
     {
         try
         {
             var socket = _listener.AcceptSocket();
             ThreadPool.QueueUserWorkItem(x => {
                 _connections.TryAdd(socket, null);
                 _handler.HandleConnection(socket);
                 object result;
                 if (_connections.TryRemove(socket, out result))
                 {
                     socket.Close();
                 }
             });
         }
         catch (SocketException e)
         {
             if (e.ErrorCode == 10004)
             {
                 return;
             }
             throw;
         }
     }
 }