Boa tarde,
Estou quebrando a cabeça pra resolver um problema e pensei se vcs poderiam me dar uma ajuda ou uma dica.
O caso é o seguinte:
Estou trabalhando com server e client via socket.
Tenho uma lista de strings para enviar mas preciso abrir uma conexão para cada envio.
No mesmo bloco de repetição, seto os canais (streams) como nulos, inicializo-os, conectando no ip e porta do server via socket, envio a string e fecho os streams.
O problema é que na primeira iteração, conecta, envia e fecha normalmente. Mas já na segunda iteração ele da ConnectException.
Segue o código (dentro do laço de repetição) para melhor explicação:
Socket cliente = null;
PrintWriter outCanal = null;
BufferedReader inCanal = null;
try {
cliente = new Socket(ip, porta);
outCanal = new PrintWriter(cliente.getOutputStream(), true);
inCanal = new BufferedReader(new InputStreamReader(cliente.getInputStream()));
} catch(UnknownHostException e) {
System.err.println("Host desconhecido: " + ip);
}
catch(IOException e) {
System.err.println("Nao foi possivel criar I/O para a conexao: " + ip);
e.printStackTrace();
}
outCanal.println("teste");
try {
inCanal.close();
outCanal.close();
cliente.close();
} catch(Exception e) {
System.err.println("Erro ao fechar conexoes");
e.printStackTrace();
}
No outro lado meu servidor está recebendo algo como:
“teste0Ateste0Ateste0A…” (0A é a quebra de linha que o println faz)
Mas gostaria que cada “teste” fosse enviado separadamente para aquele servidor. Por isso fecho os streams e tento inicializa-los novamente.
O que poderia ser?
Não estou fechando os streams corretamente?
Desde já agradeço a quem puder ajudar.