[RESOLVIDO]Socket manter conexão e monitorar

Pessoal, como eu consigo conectar em um servidor Socket e monitorar ele para que eu receba todas as mensagens que ele em envie ?
Sempre trabalhei enviando algo e na mesma hora recebendo a resposta, so que agora preciso conectar e ficar esperando mensagens dele. Dei uma pesquisada na net e os artigos que achei sempre são implementando da forma que eu fiz, enviando e recebendo na mesma hora e encerrando a conexão.

Eu tenho que conectar esse Socket e não fechar essa conexão. Essa foi a orientação do fornecedor do server.

Alguém tem um material ou dica pra dar uma luz ?

Fiz esse client, mas ele não se apliac ao que eu quero de monitorar e manter a conexão

[code]
public class EchoClient {
public static void main(String[] args) throws IOException {

	Socket echoSocket = null;
	PrintWriter out = null;
	BufferedReader in = null;

	try {
		echoSocket = new Socket("localhost", 5000);
		echoSocket.setKeepAlive(true);
		out = new PrintWriter(echoSocket.getOutputStream(), true);		
		in = new BufferedReader(new InputStreamReader(
				echoSocket.getInputStream()));
	} catch (Exception e) {
		e.printStackTrace();
	} 


	String userInput = in.readLine();
	System.out.println("echo: " + userInput);
	out.write("Servidor respondeu");
	out.flush();
	

	out.close();
	in.close();
	echoSocket.close();
}

}[/code]

qualquer coisa usa RMI…

Você tem que manter o código que faz a leitura dentro de um loop; Geralmente, o que é feito é algo parecido com isso:

while(true){

   String serverMessage = readFromSocket();

   if( "EOF".equlals(serverMessage)){
      break;
   }
}

Com relação a fazer o programa esperar não se preocupe. Quando você chama o método read() de algun InputStream ele bloqueia a thread até que os dados estejam disponíveis.

Vou seguir esse seu raciocinio rmendes08