Programmazione II: Esami Svolti
|
|
|
- Nicolo Palmisano
- 6 anni fa
- Visualizzazioni
Transcript
1 Raccolta di Codici per imparare a programmare in Java in modo tale da affrontare e superare con successo l esame di Programmazione II Programmazione II: Esami Svolti A cura di: Emanuele Cennamo
2 Nel seguente PDF sono riportati un insieme di Compiti Svolti di Programmazione II per esercitarsi su come organizzare una traccia e come risolverla utilizzando Proxy Skeleton, RMI o JMS. 1 A Cura di Emanuele Cennamo
3 Indice 1. Prova del 01/07/ Prova del 17/06/ Prova del 11/09/ Prova del 16/06/ Prova del 9/07/ Prova del 17/09/ Prova del 11/09/ Prova del 0/07/ Prova Simulazione JMS A Cura di Emanuele Cennamo
4 3 A Cura di Emanuele Cennamo
5 Organizzazione Traccia: packbroker/broker.java 3 public class Broker { 4 5 public static void main(string[] args){ 6 BrokerImpl broker = new BrokerImpl(); 7 broker.runskeleton(); 8 } 9 10 } 4 A Cura di Emanuele Cennamo
6 packbroker/brokerimpl.java 3 import java.util.arraylist; 4 import java.util.list; 5 6 import packinterfacce.isportello; 7 8 public class BrokerImpl extends BrokerSkeleton{ 9 10 private List<OggettoSportello> sportelli; 11 1 public BrokerImpl() { 13 this.sportelli = new ArrayList<OggettoSportello>(); 14 } public boolean inoltrarichiesta(int id_cliente) { if (sportelli.isempty()){ 0 System.out.println("Non ci sono Sportelli connessi alla Rete"); 1 return false; } 3 else{ 4 for (int i = 0; i < sportelli.size(); i++){ 5 ISportello sportello = new BrokerStub(sportelli.get(i).getHost(), sportelli.get(i).getport()); 6 if(sportello.servirichiesta(id_cliente) == true){ 7 return true; 8 } 9 } 30 } 31 3 return false; 33 } public void sottoscrivi(string host, int port) { OggettoSportello sportello = new OggettoSportello(host, port); 39 int n = sportelli.size(); 40 sportelli.add(sportello); 41 if (n+1 == sportelli.size()){ 4 System.out.println("Uno Sportello ha effettuato una sottoscrizione"); 43 System.out.println("Totale Sportelli sottoscritti: " + sportelli.size()); 44 } 45 else 46 System.out.println("Uno Sportello ha fallito la sottoscrizione"); } } 5 A Cura di Emanuele Cennamo
7 packbroker/brokerskeleton.java 3 import java.io.ioexception; 4 import java.net.serversocket; 5 import java.net.socket; 6 7 import packinterfacce.ibroker; 8 9 public abstract class BrokerSkeleton implements IBroker { public void runskeleton(){ 1 13 ServerSocket serversock; 14 try { 15 serversock = new ServerSocket(500); 16 System.out.println("Server In Ascolto sulla porta 500"); 17 while (true){ 18 Socket sock = serversock.accept(); 19 Thread t1 = new BrokerSkeletonThread(sock, this); 0 t1.start(); 1 } } catch (IOException e) { 3 e.printstacktrace(); 4 } 5 6 } } packbroker/brokerskeletonthread.java 3 import java.io.bufferedinputstream; 4 import java.io.bufferedoutputstream; 5 import java.io.datainputstream; 6 import java.io.dataoutputstream; 7 import java.io.ioexception; 8 import java.net.socket; 9 10 import packinterfacce.ibroker; 11 1 public class BrokerSkeletonThread extends Thread { private Socket sock; 15 private IBroker broker; public BrokerSkeletonThread(Socket sock, IBroker broker) { 18 super(); 19 this.sock = sock; 0 this.broker = broker; 1 } 6 A Cura di Emanuele Cennamo
8 4 public void run() { 5 boolean esito = false; 6 try { 7 8 DataOutputStream dos = new DataOutputStream (new BufferedOutputStream(sock.getOutputStream())); 9 DataInputStream dis = new DataInputStream ( new BufferedInputStream(sock.getInputStream())); String command = dis.readutf(); 3 if(command.equals("sottoscrivi")){ 33 String host = dis.readutf(); 34 int port = dis.readint(); 35 broker.sottoscrivi(host, port); 36 dos.writeutf("sottoscrizione Effettuata al broker"); 37 } 38 else if (command.equalsignorecase("inoltrarichiesta")){ 39 int id_cliente = dis.readint(); 40 esito = broker.inoltrarichiesta(id_cliente); 41 dos.writeboolean(esito); 4 } dos.flush(); 45 dos.close(); 46 dis.close(); } catch (IOException e) { 49 e.printstacktrace(); 50 } 51 5 } } packbroker/brokerstub.java 3 import java.io.bufferedinputstream; 4 import java.io.bufferedoutputstream; 5 import java.io.datainputstream; 6 import java.io.dataoutputstream; 7 import java.io.ioexception; 8 import java.net.socket; 9 import java.net.unknownhostexception; import packinterfacce.isportello; 1 13 public class BrokerStub implements ISportello { String host; 16 int port; public BrokerStub(String host, int port) { 19 super(); 0 this.host = host; 7 A Cura di Emanuele Cennamo
9 1 this.port = port; } 4 public boolean servirichiesta(int id_cliente) { 5 6 boolean esito = false; 7 8 try { 9 Socket sock = new Socket(host, port); 30 DataOutputStream dos = new DataOutputStream ( new BufferedOutputStream(sock.getOutputStream())); 31 DataInputStream dis = new DataInputStream ( new BufferedInputStream(sock.getInputStream())); 3 33 dos.writeint(id_cliente); 34 dos.flush(); esito = dis.readboolean(); dos.close(); 39 dis.close(); 40 sock.close(); 41 4 } catch (UnknownHostException e) { 43 e.printstacktrace(); 44 } catch (IOException e) { 45 e.printstacktrace(); 46 } return esito; 49 } } packbroker/oggettosportello.java 3 public class OggettoSportello { 4 5 private String host; 6 private int port; 7 8 public OggettoSportello(String host, int port) { 9 super(); 10 this.host = host; 11 this.port = port; 1 } public String gethost() { 15 return host; 16 } public int getport() { 19 return port; 0 } 1 8 A Cura di Emanuele Cennamo
10 } packclient/client.java 1 package packclient; 3 import java.util.random; 4 import java.util.concurrent.executorservice; 5 import java.util.concurrent.executors; 6 7 import packinterfacce.ibroker; 8 9 public class Client { private static final int DEFAULT_PORT = 500; 1 private static final String DEFAULT_HOST = "localhost"; public static void main(string[] args) { if ( args.length >= 3 ){ 17 System.out.println("ERRORE: aggiungere come argomento solo <broker host> e <broker port> "); 18 System.exit(0); 19 } 0 1 IBroker broker = null; int port = 0; 3 4 if(args.length == 0){ 5 System.out.print("Mi sto connettendo al broker '" + DEFAULT_HOST + "'alla porta " + DEFAULT_PORT ); 6 broker = new ClientStub(DEFAULT_HOST, DEFAULT_PORT); 7 } 8 else if ( args.length == 1 ){ 9 System.out.print("Mi sto connettendo al broker '" + args[0] + "' alla porta " + DEFAULT_PORT ); 30 broker = new ClientStub(args[0], DEFAULT_PORT); 31 } 3 else if ( args.length == ){ 33 port = Integer.parseInt(args[1]); 34 System.out.print("Mi sto connettendo al broker '" + args[0] + "' alla porta " + port ); 35 broker = new ClientStub(args[0], port); 36 } Random rand = new Random(); 39 int id_cliente; 40 ExecutorService executor = Executors.newCachedThreadPool(); 41 4 for ( int i = 0; i < 10; i++ ){ 43 id_cliente = rand.nextint(100)+1; 44 executor.execute(new ClientThread(id_cliente, i, broker)); 45 } } } 9 A Cura di Emanuele Cennamo
Sockets in Java. Lorenzo Gallucci
Sockets in Java Lorenzo Gallucci Sockets La libreria Java dispone di un API per la gestione dell I/O di rete Il package di riferimento è java.net Vari compiti: Gestione dell I/O su socket (sia TCP che
Programmazione distribuita in Java. Socket & Client-Server
Programmazione distribuita in Java Socket & Client-Server 1 Strumenti per networking Libreria java.net Socket (Astrazione per una presa di comunicazione) Serializzazione Socket Per comunicare si apre una
Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione
Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client
Corso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura
Architettura Client-Server
Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server
Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server
Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto
Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM
Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM ERRATA CORRIGE dei programmi della prima stampa (Aprile 2004) aggiornato al 20/05/2017 Nota: il codice corretto è ottenibile da quella errato
Esercizio monitor. Sistemi Operativi T 1
Esercizio monitor Si consideri un piccolo Aereoporto, nel quale sia presente una sola pista, utilizzata sia per i decolli che per gli atterraggi. La pista puo` anche essere percorsa da mezzi di servizio:
Esercitazione 15. Il problema dello Sleeping Barber
Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazione 15 Il problema dello Sleeping Barber E dato un salone di barbiere,
Sincronizzazione con Java
Sincronizzazione con Java Corse critiche e sincronizzazione Java implementa un meccanismo simile al monitor per garantire la sincronizzazione fra thread Ogni oggetto ha un lock associato ad esso Nelle
Programmazione di rete in Java
Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo
MagiCum S.r.l. Progetto Inno-School
MagiCum S.r.l. Progetto Inno-School Area Sviluppo Web Autore: Alessio Bernardo Revisione: 1 Data: 23/05/13 Titolo: Sviluppo piattaforma e-learning e sviluppo siti web File: Documentazione tecnica Sito:
public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
Ottava Esercitazione. introduzione ai thread java mutua esclusione
Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione
Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: [email protected], SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell
Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: [email protected], SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e
Laboratorio di Sistemi Classi e relazioni Java
package carrelloconsoleapp; import javax.swing.imageicon; /* *.java /** * * @author maurizio public class { private String id; private String descrizione; private double prezzo; private int percsconto;
Sezione: Upcast - downcast
1 Sezione: Upcast - downcast Upcast & downcast 2 public class Test { public static void main(string a[]) { new Test(); Test() { A a; cast B b = new B(); OK: upcast implicito a=b; NO: "method f2 not found
Esercizio Sincronizzazione Thread
Esercitazione di oratorio 17/10/2007 Esercizio Il laboratorio di Informatica del Polo Marzotto e utilizzato da tre tipi di utenti, studenti, tesisti e professori ed ogni utente deve fare una richiesta
Esercitazione: Socket Java senza connessione
Esercitazione: Socket Java senza connessione Client e Server Datagram Sviluppare un applicazione C/S in cui: il client invia al server pacchetti contenenti il nome del file e il numero della linea del
7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:
7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)
Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.
Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto
(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP
(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP D (FKR&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: il server attende una connessione da parte del client (su MDYDQHW6HUYHU6RFNHW), usa la
Linguaggi di programmazione II AA 2010/2011 Esercitazione 2
Linguaggi di programmazione II AA 2010/2011 Esercitazione 2 1) Scrivere l'output del seguente programma Java public class Bean private String str; Bean(String str ) this.str = str; public String tostring()
Corso di Telematica II
Corso di Laurea Triennale in Ingegneria Informatica ed Ingegneria delle Telecomunicazioni Corso di Telematica II Matricola Nome, Cognome Data Orale... Prova scritta del 21/07/2005 Si implementi, in linguaggio
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;
Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso
Fondamenti di Java. Soluzione esercizio hashcode
Fondamenti di Java Soluzione esercizio hashcode Esercizio Definire una classe con una hashcode corretta. Aggiungere delle istanze "uguali" a un set, e controllare la dimensione del set ottenuto. Vi torna
Cifratura simmetrica
Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave
Esempio: Interfacce. Gioco Interfacce
Esempio: Interfacce 1 Descrizione Si supponga di avere delle carte da gioco. Ogni carta rappresenta un Personaggio che può essere di tipo o Umano o Mostro. Un Personaggio di tipo Umano ha una forza fisica
Datagrammi. NOTA: MulticastSocket estende DatagramSocket
Datagrammi Le applicazioni che comunicano tramite socket possiedono un canale di comunicazione dedicato. Per comunicare, un client ed un server stabiliscono una connessione, trasmettono dati, quindi chiudono
Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento
Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica
SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria
Esempio: Interfacce. Gioco Interfacce
Esempio: Interfacce 1 Descrizione Si supponga di avere delle carte da gioco. Ogni carta rappresenta un Personaggio che può essere di tipo o Umano o Mostro. Un Personaggio di tipo Umano ha una forza fisica
Esercizi su UDP. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 22/10/2008. Università di Pisa
Esercizi su UDP Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 22/10/2008 Un Tipico Client UDP Un client UDP invia datagrammi ad un server in attesa di essere
