Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    11

    Serializzazione oggetti Java

    Buongiorno a tutti! Avrei bisogno di aiuto per quanto riguarda la serializzazione di oggetti.
    Vi spiego qual è il problema!
    Io ho un'applicazione java distribuita!
    Questa applicazione consiste di un server e di client che si connettono a tale server e attraverso questo si scambiano i messaggi su stream.
    Per spiegarmi meglio: questa applicazione gestisce il gioco degli scacchi! Quindi quando io effettuo una mossa ho bisogno che l'avversario (che risiede su una macchina diversa) ricevi la mossa e aggiorni lo stato della scacchiera.
    Premetto: se serializzo questo oggetto su un file tutto fila liscio (se i giocatori sono sullo stesso PC) perchè vado a salvare il file in locale. In caso di avversario su macchina diversa questo non legge le informazioni in modo corretto perchè il file "giusto" sta su un altro PC.
    Volevo chiedere: è possibile serializzare direttamente sull' ObjectOutputStream senza passare per il file?
    Grazie a tutti
    Lara

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

    Moderazione

    Per Java esiste il sub-forum apposito.
    Ti sposto lì.


    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

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Serializzazione oggetti Java

    Originariamente inviato da ricciola
    Volevo chiedere: è possibile serializzare direttamente sull' ObjectOutputStream senza passare per il file?
    certo, fai cosi':

    codice:
    Socket s = ...
    ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream()):
    
    // per mandare i dati:
    out.writeObject(obj);
    ovviamente all'altro capo ti servira' un ObjecInputStream
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    11

    Re: Serializzazione oggetti Java

    Intanto ti ringrazio per l'informazione.
    Il problema però è il seguente.
    Io ho una classe Messaggio che contiene diversi campi. In particolar modo contiene anche un campo mossa di tipo Movement.
    A me non interessa serializzare tutti i campi ma bensì solo il campo Movement.
    Se io utilizzo il metodo writeObject() come mi hai indicato tu la cosa non funziona!
    Più che altro è il readObject() sull'ObjectInputStream che non deserializza in modo corretto!
    Il mio problema è proprio lì!
    Ciao ciao

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: Serializzazione oggetti Java

    Originariamente inviato da ricciola
    Intanto ti ringrazio per l'informazione.
    Il problema però è il seguente.
    Io ho una classe Messaggio che contiene diversi campi. In particolar modo contiene anche un campo mossa di tipo Movement.
    A me non interessa serializzare tutti i campi ma bensì solo il campo Movement.
    Se io utilizzo il metodo writeObject() come mi hai indicato tu la cosa non funziona!
    Più che altro è il readObject() sull'ObjectInputStream che non deserializza in modo corretto!
    Il mio problema è proprio lì!
    Ciao ciao
    ma Movement implementa java.io.Serializable?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    11
    Si, la implementa!

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    tiro ad indovinare: hai messo il flush sull'outputstream per svuotare (e quindi trasmettere per intero) lo stream stesso? Se non l'hai già fatto, mettilo. E possibilmente termina con un close sullo stream
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    11
    Buongiorno! Avevo già provato con quello che mi hai suggerito ma niente!
    Il problema credo sia nel fatto che ho la classe principale che implementa la java.io.serializable e questa classe contiene a sua volta come attributo un oggetto di tipo Movement anch'esso che implementa la java.io.serializable.

    public class ClientMessage implements java.io.Serializable {
    // campi del messaggio

    public String Source;

    public String Dest;

    public String ProcessName;

    public int OpCode;

    public Object Content;

    public Movement Move; -> credo che il problema sia qui

    public ClientMessage(String source, String dest, String processname,
    int opcode, Object content, Movement move) {
    Source = source;
    Dest = dest;
    ProcessName = processname;
    OpCode = opcode;
    Content = content;
    Move = move;

    }

    Ciao :master:

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    11
    Ti dico questo perchè se faccio la prova e il campo Movement lo metto come stringa tutto funziona correttamente!

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non penso possa essere quello il problema. Vediamo che fai in lettura?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.