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