Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [JAVA] EOFException

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315

    EOFException Java

    Help me!!!
    Come risolvo questa eccezione???

    protected void listen() throws IOException {
    ObjectInputStream iObjStream = new ObjectInputStream( iStream ) ;
    NodeMessage message ;
    while ( true ) {
    try {
    message = (NodeMessage) iObjStream.readObject();
    handleMessage(message);
    } catch (ClassNotFoundException e) {
    e.PrintStackTrace();
    }
    }
    }

    Ho provato a mettere un If per vedere se iObjStream.readObject() è diverso da null, ma non funziona!!!

  2. #2
    Proverei così:

    codice:
    protected void listen(){ 
     try { 
       ObjectInputStream iObjStream = new ObjectInputStream( iStream ) ; 
       NodeMessage message ; 
       while ( true ) { 
       message = (NodeMessage) iObjStream.readObject(); 
       handleMessage(message); 
     } catch (Exception e) { 
       e.PrintStackTrace(); 
     } 
    }
    Ma non sono sicurissimo del risultato! :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Ho provato ma non funziona...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    18
    aggiungi questi catch
    codice:
    catch(EOFException eof) { eof.printStackTrace(); }
    catch(Exception e) { e.printStackTrace() }

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Niente... sigh

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    mi spiego meglio...

    ho un server ed un client...il server deve stare perennemente in ascolto il client aspettando che di tanto in tanto il client gli mandi dei messaggi (che sono istenze di una classe). Per far ciò ho fatto un ciclo infinito in cui con la .readObject devo leggere i messaggi.

    Ma quando invio il messaggio, dal client mi esce scritto:

    java.io.EOFException
    at java.io.ObjectInputStream$BlockDataInputStream.pee kByte(ObjectInputStream.java:2435)
    at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1245)
    at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:324)
    at netserver.net.MessageReceiver.run(MessageReceiver. java:24)

    che significa? io l'ho interpretato come il server che legge sul canale anche quando il messaggio non è stato ancora spedito, ma non ho ottenuto niente...qualcuno può aiutarmi???
    Grazie

  7. #7
    Beh contrariamente a quanto si pensava prima il problema non è la gestione delle eccezioni quindi il try catch puramente non ti risolve il problema.
    Devi andare a cercare cosa fa la parte di codice che ti segnala, in pratica da questo

    codice:
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2435) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1245) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324) 
    at netserver.net.MessageReceiver.run(MessageReceiver.java:24)
    se non sbaglio, dovrebbe voler dire che il problema sta qui:

    codice:
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2435)
    Quindi devi vedere che fa di preciso questo pezzo di codice e pensare perchè ti da una eccezione sulla fine del file, magari non chiude lo stream quando deve o non so... :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.