lpr-b:odpclass
no way to compare when less than two revisions
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| — | lpr-b:odpclass [30/10/2007 alle 17:52 (18 anni fa)] (versione attuale) – creata Sonia Campa | ||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| + | <code java> | ||
| + | /** | ||
| + | * @author Danelutto Marco | ||
| + | * | ||
| + | * Questa classe permette la serializzazione e deserializzazione di oggetti nei DatagramPacket. | ||
| + | * Per spedire un oggetto serializzato in un DatagramPacket, | ||
| + | * ODP(Object o). Successivamente si utilizza il metodo DatagramPacket getDatagramPacket(InetAddress address, int port) | ||
| + | * per ottenere il datagram packet da spedire, che contiene l' | ||
| + | | ||
| + | * Per ricevere un oggetto serializzato in un pacchetto, si usa il metodo statico ODP getODP(DatagramPacket dp) | ||
| + | * per ottenere un ODP e quindi si invoca il metodo Object getObject() sull' | ||
| + | | ||
| + | */ | ||
| + | /* | ||
| + | * Created on Nov 13, 2003 | ||
| + | * | ||
| + | * To change the template for this generated file go to | ||
| + | * Window& | ||
| + | */ | ||
| + | |||
| + | package TFTPudp; | ||
| + | import java.net.*; | ||
| + | import java.io.*; | ||
| + | |||
| + | |||
| + | public class ODP { | ||
| + | /** | ||
| + | * variabile utilizzata per memorizzare l' | ||
| + | * (o che e' stato) serializzato mediante il DatagramPacket. | ||
| + | */ | ||
| + | private Object o = null; | ||
| + | |||
| + | /** | ||
| + | * costruttore per la creazione di un ODP | ||
| + | * Questo costruttore si usa per creare un pacchetto da spedire. | ||
| + | * @param o l' | ||
| + | */ | ||
| + | public ODP(Object o) { | ||
| + | this.o = o; | ||
| + | } | ||
| + | | ||
| + | /** | ||
| + | * creazione di un oggetto ODP a partire da un pacchetto DatagramPacket. Si passa il datagram packet come parametro | ||
| + | * e da questo si ottiene l' | ||
| + | * @param dp il DatagramPacket da cui si crea l' | ||
| + | * @return l' | ||
| + | */ | ||
| + | public static ODP getODP(DatagramPacket dp) { | ||
| + | ODP o = null; | ||
| + | try { | ||
| + | ByteArrayInputStream bis = new ByteArrayInputStream(dp.getData()); | ||
| + | ObjectInputStream ois = new ObjectInputStream(bis); | ||
| + | o = new ODP(ois.readObject()); | ||
| + | } catch (IOException e) { | ||
| + | e.printStackTrace(); | ||
| + | } catch (ClassNotFoundException e) { | ||
| + | e.printStackTrace(); | ||
| + | } | ||
| + | return o; | ||
| + | } | ||
| + | |||
| + | /** | ||
| + | * metodo per ottenere un DatagramPacket dall' | ||
| + | * @param addr l' | ||
| + | * @param port porta destinazione per il pacchetto | ||
| + | * @return il datagram packet con l' | ||
| + | */ | ||
| + | public DatagramPacket getDatagramPacket(InetAddress addr, int port) { | ||
| + | ByteArrayOutputStream bos = new ByteArrayOutputStream(); | ||
| + | ObjectOutputStream oos; | ||
| + | try { | ||
| + | oos = new ObjectOutputStream(bos); | ||
| + | oos.writeObject(o); | ||
| + | } catch (IOException e) { | ||
| + | e.printStackTrace(); | ||
| + | } | ||
| + | byte[] buf = bos.toByteArray(); | ||
| + | DatagramPacket dp = new DatagramPacket(buf, | ||
| + | return (dp); | ||
| + | } | ||
| + | |||
| + | /** | ||
| + | * utilizzata per prelevare l' | ||
| + | * @return l' | ||
| + | | ||
| + | */ | ||
| + | public Object getObject() { | ||
| + | return o; | ||
| + | } | ||
| + | |||
| + | } | ||
| + | |||
| + | </ | ||
lpr-b/odpclass.txt · Ultima modifica: 30/10/2007 alle 17:52 (18 anni fa) da Sonia Campa
