Gerenciar Socket

Galera seguinte tenho um programa que gerencia vaaaarios clientes com threads e sockets…

ou seja assim que o servidor recebe a conexao

            serverSocket = new ServerSocket(porta);

            while (listening){
                serverThread = new ServerThread(serverSocket.accept());
                serverThread.start();  
                setThreadcounter(getThreadcounter() + 1);
            }
  
            serverSocket.close();

passo ele para outro objeto(com o socket como parametro) e este possui um laco para troca de mensagens…

        while (mensagemRecebida()){
             processa();
        }

Problema: qdo o cliente conecta eu tenho que determinar o tempo maximo logado!

como faco isso da melhor maneira? ou a mais inidicada… :oops:

Vlw