View Full Version : [Java-RMI] Messaggi
nucarote
29-05-2007, 15:14
Avendo un servizio implementato in RMI del tipo:
public void createFile(String fileName, byte[] data)throws RemoteException.
public byte[] getFile(String fileName)throws RemoteException.
E' possibile sapere il numero di elementi dell'array byte di ritorno scaricati in un determinante istante?
Così?
byte[] arr = getFile(...
int n = arr.length;
nucarote
29-05-2007, 18:42
Così?
byte[] arr = getFile(...
int n = arr.length;
No, durante il procedimento di chiamata del metodo.
Un pò come leggere dallo stream di URLConnection tanto per intenderci.
Credo proprio di no...perché tutto quello che avviene durante la chiamata, al di sotto del proxy object, è totalmente trasparente all'utente...
Comunque ti consiglierei di spezzare il file da spedire in pezzettini, cosi'
hai una idea di "quanto manca".
Oppure implementi un oggetto che incapsula un file e lo
serializzi custom.
O ancora reimplementi le socket factory, cosi' hai il controllo a basso
livello su quello che passa per la rete.
tomasi81
30-05-2007, 10:45
Comunque ti consiglierei di spezzare il file da spedire in pezzettini, cosi'
hai una idea di "quanto manca".
Oppure implementi un oggetto che incapsula un file e lo
serializzi custom.
Premettendo che non ne capisco molto di RMI avendone solo letto qualcosa su un manuale mi spiegheresti come spezzare il file da spedire? C'è un modo per farlo in automatico all'interno dell'applicazione (intendo qualcosa come un metodo di qualche classe Java che prende in pasto il file e restituisce un array contenente il file suddiviso in "segmenti" della stessa lunghezza o cose così).
E se puoi cosa intendi per incapsulare il file e serializzarlo custom (la serializzazione la conosco è il "custom" che non avevo mai sentito prima).
... mi spiegheresti come spezzare il file da spedire? C'è un modo per farlo in automatico...
Non c'e' un modo automatico, per quanto ne so, lo puoi fare semplicemente
con array, leggendo un pezzetto alla volta...
In questo modo pero' perdi i vantaggi di RMI.
E se puoi cosa intendi per incapsulare il file e serializzarlo custom (la serializzazione la conosco è il "custom" che non avevo mai sentito prima).
Devi implementare i due metodi
private void writeObject(ObjectOutputStream s)
private void readObject(ObjectInputStream s)
In questo modo e' tua responsabilita' salvare e ripristinare il tuo oggetto.
Vedi un esempio qui:
http://java.sun.com/javase/6/docs/technotes/guides/serialization/examples/custom/index3.html
nucarote
30-05-2007, 11:22
Comunque ti consiglierei di spezzare il file da spedire in pezzettini, cosi'
hai una idea di "quanto manca".
Oppure implementi un oggetto che incapsula un file e lo
serializzi custom.
O ancora reimplementi le socket factory, cosi' hai il controllo a basso
livello su quello che passa per la rete.
La prima è la più semplice e non mi farebbe sbattere troppo.
La seconda non l'ho capita.
La terza mi pare leggermente più complessa se ho tempo ci provo.
tomasi81
30-05-2007, 11:31
Grazie mille lovaz! :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.