Olá Pessoal
estou fazendo um trabalho com sockets em Java, onde eu preciso enviar a mesma msg para várias máquinas, mas não estou conseguindo, por favor alguém pode dar uma olhada no meu código, e me dar um help. Eu fiz o seguinte criei um Client e um Server, o Client envia a msg e os servers ficam aguardando, por enquanto estou testando só na minha máquina. Entõa no client existe um vetor de ips, onde existem 5 ips cadastrados, e o client inicia enviando a msg para o primeiro ip do vetor, daí ele fica em um while, até terminar de enviar para tds os ips. E o server tb fica em um while que só termina qdo zerar o contador dele. Segue os código do Client e do Server:
obs: tirei algumas partes do client que no momento não são necessárias, como a criação da var “envia” que esta funcionando direitinho.
Client*********
int k = 0;
String x = null;
int d=0;
//enviar a msg enquanto o contador de ips for diferente de zero
while(contIps!=0){
//conecta na primeira máquina, porta 80
Socket client = new Socket(ips[d], 80);
d++;
//cria canal de comunicacao para receber dados
DataInputStream in = new DataInputStream(client.getInputStream());
//cria canal para enviar dados
DataOutputStream out = new DataOutputStream(client.getOutputStream());
//envia o inteiro 3
out.writeInt(3);
//envia string
out.writeUTF(envia);
//agurada o recebimento de um inteiro
k = in.readInt();
//aguarda o recebimento de uma String
x = in.readUTF();
//System.out.println("Recebeu inteiro:" + k);
//System.out.println("Recebeu string:" + s);
//fecha os canais de entrada e saída
in.close();
out.close();
//fecha socket
client.close();
contIps--;
}
}catch (Exception e) {
e.printStackTrace();
}
}
Fim do client*****
erro que ocorre no client qdo executo, sendo que ele envia a msg na primeira vez e na segunda ele dá o erro:
java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:358)
at Client.main(Client.java:234)
Server**********
try{
int cont=0;
while(cont!=5){
ServerSocket serverSocket = new ServerSocket(80);
Socket socket = serverSocket.accept();
DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
int k = in.readInt();
String x = in.readUTF();
out.writeInt(3);
out.writeUTF("Server");
System.out.println("Rcebeu " + x);
in.close();
out.close();
socket.close();
cont++;
}
}catch (UnknownHostException e) {
System.err.println("Nao conseguiu achar o server ");
System.exit(1);
} catch (IOException e) {
System.err.println("Nao conseguiu abrir a conexao com o server ");
System.exit(1);
}
}
******Fim do server
Se alguém conseguir me ajudar, desde já agradeço!!!

