Voglio solo sapere se c'è un tutorial o un how-to per serializzare oggetti, metterli in uno stream sulla rete e deserializzare dall'altra parte. Capisco i principi di serializzazione, I/O, stream, socket e così via, vorrei solo un esempio di un client che invia un oggetto a un server per iniziare.Serializzazione Java sulla rete
risposta
This (pdf) è un utile tutorial che illustra le basi della serializzazione e dei socket, quindi collega i due concetti insieme (circa a metà delle diapositive) per mostrare come serializzare un oggetto e inviarlo dal client a server (senza RMI). Penso che sia esattamente quello che vuoi.
È piuttosto semplice, in realtà. È sufficiente rendere serializzabili gli oggetti e creare ObjectOutputStream e ObjectInputStream collegati a qualsiasi flusso sottostante, ad esempio FileInputStream, ecc. Quindi, basta scrivere() qualunque oggetto si desideri allo stream e leggerlo sull'altro lato.
Ecco un example per voi.
si potrebbe desiderare di essere un po 'più attenti sulla chiusura delle tue risorse rispetto a quell'esempio. –
Java fornisce la serializzazione oggetto (binaria) utilizzando ObjectOutputStream (e ObjectInputStream). Puoi semplicemente scrivereObject() nello stream e readObject() sull'altra estremità. Tutto ciò che devi fare per funzionare è implementare l'interfaccia Serializable.
Ma piuttosto che farlo manualmente, potresti essere interessato a portarlo a un livello e usare Remote Method Invocation. Con RMI puoi chiamare metodi su oggetti che vivono in un'altra JVM, e tutta la serializzazione e il networking avvengono sotto il cofano.
E per completezza, c'è anche XML bean serialization, se non è possibile utilizzare il formato binario. Quel formato XML è molto generico (leggi: verbose e brutto), ma ci sono alcune librerie popolari (come XStream) che creano serializzazioni XML alternative.
è possibile creare flussi di oggetti utilizzando java api e inviare qualsiasi oggetto serializzabile. ma youll devono ricordare che questi vanno in chiaro attraverso la rete:
sul lato del mittente:
CustomObject objectToSend=new CustomObject();
Socket s = new Socket("yourhostname", 1234);
ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
out.writeObject(objectToSend);
out.flush();
e sul lato di ricezione:
ServerSocket server = new ServerSocket(1234);
Socket s = server.accept();
ObjectInputStream in = new ObjectInputStream(s.getInputStream());
CustomObject objectReceived = (CustomObject) in.readObject();
- 1. Serializzazione Java
- 2. Passando una funzione sulla rete in Haskell
- 3. WebRTC sulla rete locale?
- 4. Effective Java No. 74 (sulla serializzazione): Implementare Serializable giudiziosamente
- 5. Come condividere jboss sulla rete
- 6. Cookie corruzione sulla rete mobile
- 7. Socket.io/node.js sulla rete locale?
- 8. serializzazione oggetti java readObject/defaultReadObject
- 9. serializzazione ArrayList Java
- 10. Metodi di serializzazione Java
- 11. Serializzazione in java
- 12. Serializzazione Java dell'array multidimensionale
- 13. Serializzazione Java JSON - best practice
- 14. Serializzazione Java vs JSON vs XML
- 15. Serializzazione Java con campo transitorio
- 16. Java serializzazione con protocollo Buffer
- 17. serializzazione oggetti java - thread safe?
- 18. Serializzazione Java per Extended Class
- 19. Una connessione a localhost esce sulla rete?
- 20. Come posso rilevare l'iPhone sulla rete?
- 21. collegamento a una directory sulla rete
- 22. Come gestire purgeIdleCellConnections sulla rete 3G?
- 23. IP Camera, come rilevarlo sulla rete?
- 24. Android Come identificare l'operatore sulla rete CDMA?
- 25. Creazione di una chiave asimmetrica sulla rete
- 26. Come la serializzazione java funziona internamente?
- 27. Rete neurale XOR in Java
- 28. cos'è la serializzazione?
- 29. File.Copy() da una condivisione di rete a un'altra condivisione sulla stessa macchina copia il file sulla rete?
- 30. Come escludere campi specifici sulla serializzazione con jsonpickle?
Mostra davvero come utilizzare le prese di serializzazione e, grazie! – elbaid