public final void run()
{
  ThreadGroup clients;
  uireq client;
  Socket clientSocket;

  if(server==null) return;

  clients=new ThreadGroup("UI-clients");
  Thread.currentThread().setName("UI connection accept");
  System.out.println(new Date()+" "+scache.CACHENAME+" UI "+VERSION+" ready on "+uiport+"/"+(uiadr==null?"*":uiadr.getHostAddress()));
   while (true) {
	    clientSocket = null;
            client=null;
            try {
                clientSocket = server.accept();
                } catch (IOException e) {
                System.err.println("[SMARTCACHE] Warning: UI Accept failed: "+e);
                continue;
            }
            if(clients.activeCount()>scache.MAXHTTPCLIENTS) {
              try {
            	  System.err.println(new Date()+" [SMARTCACHE] Warning: UI Active connections limit ("+scache.MAXHTTPCLIENTS+") reached, request rejected.");
            	  clientSocket.setSoLinger(true,0);
            	  clientSocket.close();}
              catch(IOException e) {}
              continue;
            }
            client=new uireq(clientSocket);
            new Thread(clients,client).start();
   }  /* listen */
}