[RESOLVIDO]Socket manter conexão e monitorar

3 respostas
rogeriosantos77

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

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();
	}
}

3 Respostas

charleston10

qualquer coisa usa RMI…

rmendes08

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.

rogeriosantos77

Vou seguir esse seu raciocinio rmendes08

Criado 25 de janeiro de 2013
Ultima resposta 26 de jan. de 2013
Respostas 3
Participantes 3