Strumenti Utente

Strumenti Sito


lpr-b-2007-2008:note

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
lpr-b-2007-2008:note [26/10/2007 alle 08:10 (17 anni fa)]
Marco Danelutto
lpr-b-2007-2008:note [19/09/2008 alle 14:08 (16 anni fa)] (versione attuale)
Linea 56: Linea 56:
 ==== Programmino ProtocolTester con URL ==== ==== Programmino ProtocolTester con URL ====
 Questo è il [[codiceProtocolTesterUrl|codice]] per il protocol tester presentato e discusso nella lezione del 26/10. Questo è il [[codiceProtocolTesterUrl|codice]] per il protocol tester presentato e discusso nella lezione del 26/10.
 +
  
 ==== Comando per controllare lo stato dei socket ==== ==== Comando per controllare lo stato dei socket ====
Linea 94: Linea 95:
 C'e' ancora la possibilità di connettersi alla 54321 (che è listening) mentre la connessione precedente (che aveva avuto come porta effimera del client la 65226) è in CLOSE_WAIT. C'e' ancora la possibilità di connettersi alla 54321 (che è listening) mentre la connessione precedente (che aveva avuto come porta effimera del client la 65226) è in CLOSE_WAIT.
 Si veda la documentazione completa di nestat con **man netstat**.  Si veda la documentazione completa di nestat con **man netstat**. 
 +
 +
 +
 +==== Classe ODP (Object Datagram Packet) ====
 +
 +Questo è il [[sorgenteODP|sorgente]] della classe ODP, discussa a lezione, che si può utilizzare per l'invio e la ricezione di Object mediante DatagramPacket. La classe è stata modificata rispetto a quanto presentato a lezione, in verità, perchè è stato aggiunto il controllo sulla dimensione del pacchetto. I metodi sono stati trasformati in modo dal lanciare eccezzioni in caso di problemi. Verificatene l'utilizzabilità e modificatela pure a vostro piacimento. 
 +
 +
 +
 +
 +
 +
 +==== DatagramSocket che perde una percentuale di pacchetti ====
 +Se volete testare programmi che utilizzano DatagramSocket per la spedizione di pacchetti UDP utilizzate [[lpr-b:datagrampacket|questa implementazione]]. Vedi anche pagina degli [[lpr-b:esercizi#test_datagram|esercizi]]. L'implementazione perde una percentuale di pacchetti stabilita dall'utente (il 10% per default). 
 +
 +
 +==== Documentazione su RMI ====
 +Esiste un {{http://java.sun.com/docs/books/tutorial/rmi/overview.html|tutorial}} sul sito Sun/Java che spiega esaudientemente tutto quanto serve per realizzare programmi Java con RMI.
 +Un altro mini tutorial decente si trova su {{http://www.javacoffeebreak.com/articles/javarmi/javarmi.html|javacoffebreak}}.
 +Informazioni dettagliate sull'uso delle policy si trovano anche su {{http://www.exampledepot.com/egs/java.security/UsePolicy.html|The Java Developers Almanac}} (anche se queste fanno ancora riferimento a versioni vecchie di Java).
 +
 +
 +==== Security Managers con RMI ====
 +Quando si voglia (o si debba) usare un SecurityManager per permettere caricamento dinamico di classi con RMI, si deve specificare un file con i permessi necessari alla polocy che si vuole implementare secondo il formato standard definito da Java ({{http://java.sun.com/j2se/1.4.2/docs/guide/security/PolicyFiles.html|pagina sito Sun/Java}}).
 +In questo caso, il programma deve essere lanciato definendo a riga di comando quale file di policy deve essere consultato. A tale scopo si usa la sintassi
 +
 +   java -Djava.security.policy=FileCheContieneLaPolicy nomeDellaClasseMain
 +
 +Da notare che apparentemente una 
 +
 +  grant {
 +   permission  java.security.AllPermissions; 
 +  }; 
 +
 +non da' i permessi necessari alla lookup dell'oggetto remoto che vanno pertanto specificati con una permission esplicita tipo:
 +
 +   permission java.net.SocketPermission "fujih1.cli.di.unipi.it", "connect,resolve";
 +
 +dove il nome della macchina può essere sostituito dal wildcard "*"
 +
 +==== Esempio commentato sull'uso delle callback con RMI ====
 +Su {{http://www.itec.uni-klu.ac.at/~harald/ds2001/rmi/pattern/pattern2.html|questo link}} trovate un esempio di codice master/worker realizzato con RMI sia senza che con le callback. 
 +
lpr-b-2007-2008/note.1193386211.txt.gz · Ultima modifica: 19/09/2008 alle 14:08 (16 anni fa) (modifica esterna)