eu to fazendo um programa que se comunica pela rede com outro…
anteriormente eu usava o DataInputStream e o DataOutputStream mas agora resolvi usar o ObjectInputStream e o ObjectOutputStream só que quando eu mando o ObjectInputStream ficar esperando pra receber alguma coisa ele da um erro (EOFException) com o Data isso naum acontecia.
alguem sabe de alguma alternativa para resolver isso???
ObjectInputStream/ObjectOutputStream
10 Respostas
tah valew cara…
mas eu num entendi como eu posso resolver isso se eh que eu posso…
Dá uma conferida nos objetos que estais enviando e verifica se algum parâmetro não é “Serializable”. T+
desculpa a ignorancia mas como eu faço isso???
Tens de verificar os tipos declarados do objeto que estais transferindo. Por exemplo:
public class MyObject implements Serializable {
public MyObject() {}
//getters & setters
}
Certifique-se de que tua classe é serializable e que os atributos da classe também implementam serializable. Já tive problemas transferindo objetos com elementos não serializáveis. T+
mas o erro ocorre mesmo quando eu to lendo alguma outra coisa que não é um objeto…
tipo uma boolean…
tipo acho que você não entendeu o que eu quero fazer
eu criei uma thread só pra ficar recebendo as coisas…
dai eu do o seguinte comando
Informacao info = (Informacao) in.readObject();
e é nessa linha que ele da o erro…
mas isso ocorre porque não tem nada pra ele ler e é pra ele ficar esperando o outro programa mandar algo para ele ler…
quando eu fazia isso com o DataInputStream ele não dava esse erro…
Então tenta isto:
//...
while (exec()) {
try {
Informacao info = (Informacao) in.readObject();
} catch (Exception e) {
wait(500);
}
}
//...
E controla a leitura com o exec(), implementando dentro dele quando o loop deve cessar. T+
consegui resolver o problema…
valew…
Olá. Sugiro que coloques aqui a resposta para que outras pessoas possam orientar-se também. T+