probleme désérialisation class socket - Java - Programmation
MarshPosté le 23-12-2008 à 16:46:36
bonjour,
voila j'essaye d'écrire un programme de conversation (style msn) en java. J'ai fait une classe message (contenant divers information comme le destinataire, l'emetteur, le contenu...). J'essaye, pour l'instant, d'envoyer un message du client vers le serveur et d'afficher le contenu sur le serveur. Ça marche (je reçois bien le message) sauf que après m'avoir afficher le message, il m'affiche un "null" (ou alors une exception IOException). Le printStackTrace donne ceci : java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2570) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1314) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) at Dialogue.run(Dialogue.java:33)
je vous mets le code de la partie qui deconne :
Code :
publicvoid run() {
try {
while (true) {
// System.out.println("hihi" );
Object tentative = entree.readObject();
// System.out.println("hoho" );
message2 = (Message)tentative;
if ((message2.getType()).equals("message" )){
System.out.println(message2.getCorps());
}
}
}
catch (IOException r3) {
r3.printStackTrace();
}
catch (ClassNotFoundException r4) {
System.err.println("erreur" );
}
}
Je pense que l'erreur se situe au niveau de "Object tentative = entree.readObject();" car quand j'enleve les commentaires sur les System.out.println j'ai ceci comme résultat : hihi hoho contenu du message hihi java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2570) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1314) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) at Dialogue.run(Dialogue.java:33)
Cependant, je ne sais pas comment faire pour empécher ça.
Merci beaucoup pour votre aide. kiki303
Message édité par kiki303 le 23-12-2008 à 17:17:58
Marsh Posté le 23-12-2008 à 16:46:36
bonjour,
voila j'essaye d'écrire un programme de conversation (style msn) en java. J'ai fait une classe message (contenant divers information comme le destinataire, l'emetteur, le contenu...). J'essaye, pour l'instant, d'envoyer un message du client vers le serveur et d'afficher le contenu sur le serveur. Ça marche (je reçois bien le message) sauf que après m'avoir afficher le message, il m'affiche un "null" (ou alors une exception IOException). Le printStackTrace donne ceci : java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2570)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1314)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at Dialogue.run(Dialogue.java:33)
je vous mets le code de la partie qui deconne :
Je pense que l'erreur se situe au niveau de "Object tentative = entree.readObject();" car quand j'enleve les commentaires sur les System.out.println j'ai ceci comme résultat :
hihi
hoho
contenu du message
hihi
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2570)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1314)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at Dialogue.run(Dialogue.java:33)
Cependant, je ne sais pas comment faire pour empécher ça.
Merci beaucoup pour votre aide.
kiki303
Message édité par kiki303 le 23-12-2008 à 17:17:58