Básico: saida do socket

5 respostas
Norivan

Bom dia pessoal,

Estou com uma dúvida até meio idiota....

Seguindo um tutorial aqui do guj: http://www.guj.com.br/java.tutorial.artigo.126.1.guj, estou tentando implementar uma "conversa" entre o cliente x servidor.

O cliente abre a conexão, envia uma mensagem e o servidor recebe bonitinho... mas como eu mando uma mensagem do servidor para o cliente?

Tentei simplesmente fazer isto no Servidor.java
// Declaro a saida do servidor para o cliente
		PrintStream saida = null;
...
							// TODO fazer mensagem voltar para o agente
									saida.println("teste");
e no cliente.java
// Cria um BufferedReader para o canal da stream de entrada de dados
		entrada = new BufferedReader(new InputStreamReader(socket
				.getInputStream()));

		// Le a resposta do servidor
		resposta = entrada.readLine().split("\\:");
		
System.out.println(resposta); // imprime no console

Mas como vocês devem imaginar não deu nada certo. O que tenho que fazer pra voltar uma mensagem do servidor para o agente?

5 Respostas

ViniGodoy

Dá uma olhada:
http://www.guj.com.br/posts/list/15/74218.java#506163

Norivan

:smiley: olhei esse seu post ontem… baixei mas… :oops: não consegui muita coisa… vou olhar aqui de novo

ViniGodoy

Lá tem a comunicação dos dois lados, se eu não me engano. Olhe o feito em TCP, que é o mais simples.

Norivan

Bom obrigado pela ajuda…

Estou tentando aqui a um tempinho já… mas consegui aplicar seu código ao meu caso…

  1. Vc conecta ao socketSocket socket = new Socket(); socket.connect(new InetSocketAddress(host , port));

  2. Aqui você manda uma mensagem DataOutputStream output = new DataOutputStream(outputStream); String line = ""; while (!line.equals("EXIT")) { Scanner scan = new Scanner(System.in); System.out.print(": "); line = scan.nextLine(); output.writeInt(line.length()); for (char ch : line.toCharArray()) output.writeChar(ch); output.flush();

Mas de onde saiu a mensagem?

ViniGodoy

Do system.in.

É um programa para ser usado no console.
Você deve digitar a mensagem depois dos :, que são impressos no console.

A interface é meio esquisita, mas alguns chats antigões eram assim.

Criado 19 de setembro de 2008
Ultima resposta 19 de set. de 2008
Respostas 5
Participantes 2