Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Java: read.Object()

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    2

    Java: read.Object()

    Ciao,
    sto sviluppando una semplice chat e per far questo utilizzo una connessione client server tramite socket tcp.

    Il mio problema è quando cerco di inviare un oggetto dal client al server, in particolare:

    Nel client eseguo

    codice:
    OutputStream os = new FileOutputStream("file_client.data");         
    ObjectOutputStream oos = new ObjectOutputStream(os);
    oos.writeObject(join_client);                                          //Oggetto che invio al server
    oos.flush();
    Nel server
    codice:
    InputStream is = new FileInputStream("file_client.data");
    ObjectInputStream ois = new ObjectInputStream(is);
    Join instance = (Join) ois.readObject();
    Eseguendo così l'applicazione mi viene restituita un'eccezione "Errore: java.io.EOFException", posso inutire sia riferita ad un EndOfFile ma non capisco dove sia l'errore.

    Inoltre, cosa strana che mi fa pensare ulteriormente è che utilizzando due file differenti per il client ed il server (cioè il server legge un file diverso da quello scritto dal client), il problema non si presenta ed il file viene letto correttamente!

    Qualcuno saprebbe aiutarmi?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    2
    Originariamente inviato da Alex'87
    Vedi se può esserti utile: http://stackoverflow.com/questions/1...g-eofexception
    Grazie, sono riuscita a risolvere l'eccezione sul readObject. Però adesso il problema è sulla riga successiva

    codice:
    try{
    	System.out.println("Nome client: "+ instance.getName());
        }
    catch(NullPointerException e){
            System.out.println("NullPointer: " + e);
    	System.exit(1);	
    				
        }
    Adesso ho una NullPointerException che però non si verifica sempre, ma solo alcune volte!!!

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Il problema te lo da in modo casuale leggendo lo stesso oggetto od oggetti differenti? Hai provato a debuggare per cercare di capire che succede?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Sono perplesso.

    Dici di star creando una semplice chat che comunica su TCP.
    sto sviluppando una semplice chat e per far questo utilizzo una connessione client server tramite socket tcp.
    A me sembra tutto tranne una chat TCP: quella è una chat su file.

    codice:
    OutputStream os = new FileOutputStream("file_client.data");
    Il client scrive dei dati su un file ed il server li legge da quel file. Le Socket (strumento utilizzato per la comunicazione TCP) tu non le stai nemmeno usando.

    PS: non ammazzare le eccezioni, ma stampante lo StackTrace:
    codice:
    try {
       ...
    } catch (Exception e) {
       e.printStackTrace();
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.