Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479

    getInputStream() e ObjectInputStream

    Ciao a tutti!!!
    sto avendo qualche problema nell'utilizzo delle funzioni citate nel titolo, getInputStream() e ObjectInputStream. Allora, io ho il mio socket e quindi vado a fare:

    InputStream input = socket.getInputStream();
    ObjectInputStream in = new ObjectInputSteam( input );

    se metto questi due comandi, lo stream riesco ad ottenerlo ma poi si blocca sulla creazione dell' ObjectInputStream, non mi da errore, sta semplicemente bloccato.

    Se sostituisco questo con un DataInputStream allora va avanti. Solo che io dovrei leggere oggetti...
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: getInputStream() e ObjectInputStream

    Originariamente inviato da Poker1
    InputStream input = socket.getInputStream();
    ObjectInputStream in = new ObjectInputSteam( input );

    se metto questi due comandi, lo stream riesco ad ottenerlo ma poi si blocca sulla creazione dell' ObjectInputStream, non mi da errore, sta semplicemente bloccato.
    All'interno del costruttore di ObjectInputStream in effetti viene fatta la lettura dell'header iniziale della serializzazione. Questo header è composto da due byte particolari di "marcatura". La lettura che fa è "bloccante". Ed è appunto quello che ti sta succedendo.

    Bisognerebbe vedere cosa succede "dall'altra parte". Magari l'altro lato non ha ancora iniziato la serializzazione ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    hehe e quindi cosa posso fare per provare a risolvere questo inconveniente ?
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Poker1
    hehe e quindi cosa posso fare per provare a risolvere questo inconveniente ?
    Beh, ma scusa. Se devi leggere degli oggetti, dopo aver costruito un ObjectInputStream farai certamente delle readObject. Anche ammesso che il mittente non mandi subito degli oggetti, appena lo fa il ricevente si "sblocca" subito.

    Cioè, per dirla in altri termini, è il mittente che "pilota" il tutto. Dal lato ricevente che hai postato puoi solo aspettare che arrivi qualcosa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    capito.
    quella cosa io l'avevo messa nel costruttore di una classe che estende Thread, perche' mi serve creare un thread per ogni connessione, quindi mi si piantava prima di eseguire la run. Pensi sia meglio lasciarlo li o spostarlo nel codice della run ?
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Poker1
    quella cosa io l'avevo messa nel costruttore di una classe che estende Thread, perche' mi serve creare un thread per ogni connessione, quindi mi si piantava prima di eseguire la run. Pensi sia meglio lasciarlo li o spostarlo nel codice della run ?
    Assolutamente spostarlo nel run()!! Nel costruttore del TuoThread in genere si passa solo il Socket (quello ricevuto dalla accept() ) e lo si mette in una variabile di istanza e basta.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it L'avatar di Poker1
    Registrato dal
    Jul 2002
    Messaggi
    479
    ok grazie, dopo provo :-)
    Non riscrivere la ruota, usa le librerie.
    by Bjarne Stroustrup
    EIDON SOFT MEMBER

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.