Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net"

Transcript

1 Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Gerarchia delle classi in Java Package java.net le socket rappresentano il terminale (end point) di un canale di comunicazione bidirezionale Un Client e un su macchine diverse possono comunicare sfruttando due diversi tipi di modalità di comunicazione con connessione, in cui viene stabilita una connessione tra Client e (esempio, il sistema telefonico) Uso di socket STREAM senza connessione, in cui non c è connessione e i messaggi vengono recapitati uno indipendente-mente dall altro (esempio, il sistema postale) Uso di socket DATAGRAM classi per SOCKET INTERNET con connessione classe, per socket lato Client, con connessione (TCP) classe, per socket lato, con connessione (TCP) senza connessione classe Datagram, per socket (C/S) senza connessione (UDP) C/S in Java: in Java - 1 Le classi sono state significativamente estese dalla diverse versioni delle JVM per tenere conto delle diverse necessità applicative C/S in Java: in Java - 2

2 Sistema di NOMI Necessità di definire un sistema di identificazione delle entità messe in gioco Un applicazione distribuita è costituita da processi distinti per località che comunicano e cooperano attraverso lo scambio di messaggi, per ottenere risultati coordinati Il primo problema da affrontare riguarda la identificazione dei processi (il Client o il ) nella rete Per ogni processo bisogna definire un NOME GLOBALE visibile in modo univoco e sempre non ambiguo nome della macchina + nome del processo all interno della macchina Gli endpoint di processo (socket) sono tipicamente locali al processo stesso (livello applicativo o sottostante fino a sessione) Il problema è risolto dai livelli sottostanti di protocollo per le socket nel dominio Internet i nomi di trasporto (TCP, UDP) e rete (IP) NOMI per SOCKET Una macchina è identificata univocamente da un indirizzo IP (4 byte / 32 bit) (livello IP) La porta è un numero intero di 16 bit (astrazione fornita dal TCP e da UDP) NOME GLOBALE I messaggi sono consegnati su una specifica porta di una specifica macchina, non direttamente a un processo NOME LOCALE Un processo si lega a una porta per ricevere (o spedire) dei messaggi o anche più processi si collegano In questo modo è possibile identificare un processo senza dover conoscere il suo process identifier (pid) Un indirizzo IP e una porta possono rappresentare un endpoint di un canale di comunicazione NOME IP livello network - OSI 3 NUMERO PORTA livello trasporto - OSI 4 C/S in Java: in Java - 3 C/S in Java: in Java - 4

3 NOMI GLOBALI Numeri IP => vedi protocollo IP indirizzo IP: ad es Numeri di Porta porte 4 cifre hex: XXXXh spesso espresse con unico decimale ad es. 153, 2054 Funzione fondamentale delle porte è identificare un servizio I numeri di porta minori di 1024 sono riservati (well-known ports, o reserved) sono standardizzati i servizi offerti dai processi che a tale porta sono legati Per esempio, il servizio Web è identificato dalla porta numero 80, cioè il processo server di un sito Web deve essere legato alla porta 80, su cui riceve i messaggi con le richieste di pagine html Altri esempi: porta 21 per ftp, porta 23 per telnet, porta 25 per mail, La richiesta di un servizio a un processo server non richiede quindi la conoscenza del suo pid, ma solo della porta e IP (nomi globali) C/S in Java: in Java - 5 Caso di sequenziale o iterativo una richiesta alla volta (con connessione o meno) I tempi di risposta al servizio aumentano ==> servizi brevi server sequenziale senza connessione servizi senza stato (che introduce ritardi) e non soggetti a guasti C1 Cn #portaserver unica coda risposta sulla porta cliente Processo Controllore Azioni server sequenziale con connessione servizi con requisiti di reliability limitando lo stato (uso di TCP) difficile realizzazione pratica overhead delle azioni di controllo della connessione C1 Cn #portac1 C1 #portaserver unica coda iniziale unica connessione stabilita risposta sulla porta cliente #portac1 #portaserver Processo Controllore Azioni C/S in Java: in Java - 6

4 concorrente più richieste alla volta (multi o singolo processo) SERVER PARALLELO processi multipli uso di processi multipli, un master server generazione di processi interni per ogni servizio massimo parallelismo per servizi non interferenti Si deve garantire che il costo di generazione del processo non ecceda il guadagno ottenuto Soluzione con processi creati in precedenza che consentano di essere velocemente smistati al servizio necessario numero prefissato di processi iniziali e altri creati su necessità e mantenuti per un certo intervallo parallelo senza connessione C1 Cn C1 Ci Cn #porta1 #porta1 #portan #portan Processi Client attivi Processo Controllore Porte differenziate Processi #portaserver generazione processo Azioni Un canale unico e un processo per ogni servizio SERVER concorrente singolo processo non parallelo in caso di connessione e stato (limitati) realizzato con un unico processo che produce effetti di concorrenza dal punto di vista dei clienti l'unico processo master deve considerare tutte le richieste ed servirle al meglio (mantenendo le connessioni) Facciamo il caso di connessione (ma anche senza) C1 Cn C1 Ci Cn #porta1 richieste iniziali #portan Processi Client attivi connessione connessione Processo Controllore Processo Controllore Unico Processo #portaserver Azioni Necessità di rispondere in modo veloce alle richieste successive e sollecitazioni (REALIZZABILE IN JAVA???) C/S in Java: in Java - 7 C/S in Java: in Java - 8

5 SOCKET per DATAGRAM Le socket DATAGRAM permettono a due thread di scambiarsi messaggi senza stabilire una connessione tra i thread convolti SOCKET DATAGRAM Necessità di protocollo Scambio di messaggi da socket datagram meccanismo di comunicazione non è affidabile possibili perdite di messaggi (per problemi di rete) consegna non in ordine dovuto all'uso del protocollo UDP Vi è un solo tipo di socket DATAGRAM sia per il Client sia per il invio Porta1 Nome IP invio ricezione Porta2 Nome IP ric. La classe java.net.datagram public final class Datagram extends Object Costruttore Datagram( InetAddress localaddress, int localport) throws il costruttore Datagram crea socket UDP e fa un binding locale a porta e nome IP SCAMBIO MESSAGGI usando send e receive sock.send(datagrampacket); sock.receive(datagrampacket); Si usano sempre classi accessorie di supporto Le due socket messe in gioco devono essere state inizializzate correttamente (create) devono conoscersi In particolare chi invia: il mittente deve specificare nel messaggio che vuole comunicare con un ricevente (e una sua socket) Si devono specificare informazioni di tipo applicativo il messaggio (o lo spazio per il messaggio) di controllo della comunicazione il nodo del ricevente, la porta per arrivare alla socket del ricevente Nessuna garanzia nelle operazioni a causa del protocollo di supporto (UDP e IP) C/S in Java: in Java - 9 C/S in Java: in Java - 10

6 Classi Accessorie DatagramPacket Classe introdotta per usare e preparare datagrammi che consentono di specificare cosa comunicare (parte dati) come comunicare e con chi (parte controllo) Una istanza datagramma specifica un array di byte da/su cui scrivere e con indicazioni di comunicazione con diversi costruttori InetAddress classe per gli indirizzi IP ad esempio public static InetAddress getbyname (String hostname); DatagramPacket( byte [] buf, int offset, int length, InetAddress address, int port); che prevede anche molti altri costruttori si noti la distinzione tra funzionalità di uso: in invio dobbiamo avere una area in cui mettere i dati e l'area per accogliere il mittente in ricezione dobbiamo avere preparato tutto per l'invio vero e proprio Multicast Sono anche possibili ulteriori classi per inviare messaggi multicast e gruppi di multicast Preparazione gruppo: IP classe D e porta libera InetAddress gruppo = InetAddress. getbyname(" "); Multicast s = new Multicast(6666); Operazioni di ingresso/uscita dal gruppo // unisciti al gruppo s.joingroup(gruppo); byte[] msg = {'H', 'e', 'l', 'l', 'o'}; DatagramPacket packet = new DatagramPacket (msg, msg.length, gruppo, 6666); s.send(packet); // get their responses! byte[] buf = new byte[1000]; DatagramPacket recv = new DatagramPacket (buf, buf.length); s.receive(recv); // esci dal gruppo s.leavegroup(group); C/S in Java: in Java - 11 C/S in Java: in Java - 12

7 SOCKET per STREAM Le socket STREAM sono i terminali di un canale di comunicazione virtuale creato prima di comunicare tra il Client e il La comunicazione avviene in modo bidirezionale, affidabile, con dati (byte) consegnati in sequenza una sola volta (modalità FIFO come sulle pipe di Unix) e se non consegnati??? semantica at-most once SOCKET per STREAM Protocollo di Comunicazione con Connessione in Java Client Application Richiesta di connessione Application La connessione tra i processi Client e è definita non dai processi che devono comunicare ma da una quadrupla univoca <protocollo; indirizzo IP Client; porta Client; indirizzo IP ; porta > Client Application Nel caso delle socket STREAM, il protocollo di comunicazione sottostante è il protocollo TCP (+ IP) TCP è un protocollo di trasporto, livello 4 OSI e fornisce l astrazione porta IP è un protocollo di rete, livello 3 OSI e identifica univocamente ogni macchina collegata alla rete Internet La comunicazione tra Client e su stream segue uno schema asimmetrico e il principio della connessione (relative API diverse) Questa considerazione ha portato al progetto di due tipi di socket diverse una per il Client e una per il Classi distinte per ruoli Cliente e Servitore La classe java.net. La classe java.net. I costruttori delle classi tendono a nascondere i dettagli realizzativi I costruttori creano la socket, la legano a una porta locale e la connettono a una porta della macchina remota (Unix API più complesse e complete: vedi socket, bind, connect) C/S in Java: in Java - 13 C/S in Java: in Java - 14

8 Lato CLIENTE La classe consente di creare una socket con connessione, stream (TCP) per il collegamento di un Client a un socket è detta anche socket attiva I costruttori della classe creano la socket, la legano a una porta locale e la connettono a una porta di una macchina remota su cui sta il server La connessione permette poi una comunicazione bidirezionale (full duplex) Client Porta Nome IP Application Si noti che la creazione della socket produce in modo atomico anche la connessione al server corrispondente (deve essere presente) (Unix API più complesse e complete: vedi socket, bind, connect) Operazioni CLIENTE - costruttori public (InetAddress remotehost, int remoteport) throws IOException; Crea una socket stream cliente e la collega alla porta specificata della macchina all indirizzo IP dato (equivale in Unix a: socket, bind, connect) public (String remotehost, int remoteport) throws IOException; Crea una socket stream cliente e la collega alla porta specificata della macchina di nome logico remotehost public (InetAddress remotehost, int remoteport, InetAddress localhost, int localport) throws IOException; Crea una socket stream cliente e la collega sia a una porta della macchina locale (se localport vale zero, il numero di porta è scelto automaticamente dal sistema) sia a una porta della macchina remota (macchine multihomed) La creazione della socket produce in modo atomico anche la connessione al server corrispondente o lancia la eccezione opportuna C/S in Java: in Java - 15 C/S in Java: in Java - 16

9 Connessioni la creazione di una socket a stream se va a buon fine produce una connessione bidirezionale a byte (stream) tra i due processi interagenti e impegna risorse sui nodi e tra i processi APERTURA ottenuta con il costruttore in modo implicito CHIUSURA operazione necessaria per non impegnare troppe risorse di sistema Le risorse diventano le connessioni: costa definirle e crearle, come distruggerle e mantenerle Si tendono a mantenere le sole connessioni necessarie Operazioni CLIENTE - supporto Per ottenere informazioni sulle socket si possono utilizzare i metodi aggiuntivi public InetAddress getinetaddress(); restituisce l indirizzo della macchina remota a cui la socket è connessa public InetAddress getlocaladdress(); restituisce l indirizzo della macchina locale public int getport(); restituisce il numero di porta sulla macchina remota cui la socket è connessa public int getlocalport(); restituisce il numero di porta sulla macchina locale a cui la socket è legata Esempio: int porta = oggetto.getport(); Limiti alle aperture contemporanee di sessioni Il numero di connessioni che un processo (Client o ) può aprire è limitato, => si chiudono le connessioni non utilizzate Client sul Application Il metodo close() chiude l oggetto socket e disconnette il Client dal public synchronized void close() Porta Nome IP Porta Nome IP C/S in Java: in Java - 17 C/S in Java: in Java - 18

10 Uso di stream tipici di Java Operazioni di comunicazione su stream Lettura o scrittura da/su una socket con i metodi: public InputStream getinputstream() ritorna l input stream per leggere dei byte dalla socket public OutputStream getoutputstream() ritorna l output stream per scrivere dei byte sulla socket I due metodi restituiscono un oggetto stream che incapsula il canale di comunicazione (di classi InputStream e OutputStream) Attraverso gli stream si possono spedire/ricevere solo byte, senza nessuna formattazione naturalmente i byte arrivano ordinati non duplicati (non possono arrivare byte successivi, senza che arrivino i precedenti) i dati arrivano al più una volta at-most-once e in caso di errore? nessuna conoscenza Altri oggetti possono incapsulare questi stream, per fornire funzionalità di più alto livello (es., DataInputStream) Esempio Client di echo (il Unix è sulla porta 7)... try { ogg = new (hostname, 7); /* input ed output sugli endpoint della connessione via socket */ out = new PrintWriter (ogg.getoutputstream(),true); in = new BufferedReader (new InputStreamReader (ogg.getintputstream()); /* lettura da input */ userinput = new BufferedReader( new InputStreamReader(System.in)); while((oggline = userinput.readline())!= null) /* lettura input fino a fine file */ { out.println(oggline); System.out.println(in.readLine()); } ogg.close(); } // fine try catch (IOException e) { System.err.println(e);} C/S in Java: in Java - 19 C/S in Java: in Java - 20

11 La classe java.net. Lato server La classe definisce una socket capace di accettare richieste di connessione provenienti dai diversi Client più richieste di connessione pendenti allo stesso tempo e più connessioni aperte contemporaneamente Definisce anche la lunghezza della coda in cui vengono messe le richieste di connessione non ancora accettate dal server Una volta stabilita la connessione (ottenuta dal server tramite il metodo accept) la trasmissione dei dati avviene attraverso un normale oggetto del server (restituito dalla accept) Al momento della creazione si effettuano implicitamente le operazioni più elementari visibili in UNIX, come socket, bind e listen Costruttori per il server public (int localport) throws IOException, BindException; crea una socket in ascolto sulla porta specificata public (int localport, int count) throws IOException, BindException; crea una socket in ascolto sulla porta specificata con una coda di lunghezza count Le richieste accodate non sono servite automaticamente => necessità di un API che esprima la volontà di servizio Il server gioca un ruolo "passivo" deve specificare la coda delle possibili richieste ed aspettare i clienti comincia a decidere con la introduzione volontaria della primitiva di accettazione esplicita ACCEPT di una connessione C/S in Java: in Java - 21 C/S in Java: in Java - 22

12 ACCEPT di connessione Il si mette in attesa di nuove richieste di connessione chiamando il metodo accept() La invocazione di accept blocca il fino all arrivo di una richiesta Quando arriva una richiesta, accept stabilisce una la reale connessione tra il Client e un nuovo oggetto restituito da accept e che rappresenta lo stream con il cliente public accept() throws IOException; La accept restituisce un oggetto della classe su cui avviene la comunicazione tra Client e la chiamata di accept mette il servitore in attesa di richieste di connessione Tipicamente se non ci sono ulteriori richieste, il servitore si blocca in attesa Se c è almeno una richiesta, si sblocca la primitiva e si crea la connessione per questa La trasmissione dei dati avviene con i metodi visti per il lato Client in modo del tutto indifferente in uno o l'altro verso della connessione i due endpoint sono del tutto omogenei (uso di protocollo TCP) Informazioni sulle socket connesse: public InetAddress getinetaddress() restituisce l indirizzo della macchina locale a cui la socket server è connessa public int getlocalport() restituisce il numero di porta sulla macchina locale daytime (il Unix su porta 13) ogg = new (portadaytime); try { /* il server alla connessione invia la data al cliente */ while (true) { oggconnessione = ogg.accept(); out = new PrintWriter (oggconnessione.getoutputstream(), true); Date now=new Date(); // produce la data out.write(now.tostring()+ "\r\n"); oggconnessione.close(); } } catch (IOException e) { ogg.close(); oggconnessione.close(); System.err.println(e); }... C/S in Java: in Java - 23 C/S in Java: in Java - 24

13 Parallelo con connessione Richiesta di connessione Thread (padre) Comunicazione Client/ accept (); <attesa su > <generazione thread> <padre continua> < servizio della richiesta uso di > Nuovo Thread Alla accettazione il servitore può generare una nuova attività responsabile del servizio (che eredita la connessione nuova) Il servitore principale può aspettare nuove richieste e servire nuove operazioni Esempio possible Remote CoPy (RCP) Si realizzi un applicazione distribuita Client/ per eseguire la copia remota (remote copy, rcp) di file Progettare sia il programma client sia il programma server Il programma Client deve consentire la invocazione: rcp_client nodoserver portaserver nomefile nomefiledest nodoserver e portaserver indicano il nome e nomefile è il nome di un file presente nel file system della macchina Client Il processo Client deve inviare il file nomefile al che lo scrive nel direttorio corrente con nome nomefiledest La scrittura del file nel direttorio specificato deve essere eseguita solo se in tale direttorio non è presente un file con lo stesso nome, evitando di sovrascriverlo Uso di connessione: il file richiede di trasferire anche grosse moli di dati e in ordine La connessione aperta dal cliente consente al server di coordinarsi per la richiesta del file che viene inviato C/S in Java: in Java - 25 C/S in Java: in Java - 26

14 RCP Client Estratto del client rcp = new (host,porta); StrDatiOut = new DataOutputStream (rcp.getoutputstream()); StrDatiIn = new DataInputStream (rcp.getinputstream()); StrDatiOut.writeUTF (NomeFileDest); Risposta = StrDatiIn.readUTF(); System.out.println(Risposta); if (Risposta.equalsIgnoreCase ("MSGSrv: attendofile") == true) {FDaSpedDescr = new File(NomeFile); FDaSpedInStream = new FileInputStream(FDaSpedDescr); byte ContenutoFile [] = new byte [FDaSpedInStream.available()]; FDaSpedInStream.read(ContenutoFile); StrDatiOut.write (ContenutoFile); }} // file letto tutto in un colpo? catch (IOException e) {System.err.println(e);} rcp.close(); UTF formato standard Unified Transformation Format per maggiore portabilità C/S in Java: in Java - 27 RCP iterativo sequenziale try { rcpsrv = new (Porta); System.out.println("Attesa su porta" + rcp.getlocalport()); while(true) {Conn = rcp.accept(); System.out.println("con " + conn); StreamOut = new DataOutputStream (Conn.getOutputStream()); StreamIn = new DataInputStream (Conn.getInputStream()); NFile = StreamIn.readUTF (); FileDaScrivere = new File(NFile); if(filedascrivere.exists() == true) { StrOut.writeUTF( "MSGSrv: file presente, bye"); } else { StrOut.writeUTF( "MSGSrv: attendofile"); byte ContntFile[] = new byte [1000]; StrIn.read(ContntFile); FileOutputStream = new FileOutputStream (FileDaScrivere); FileOutputStream.write(ContntFile); } Conn.close(); } // file letto tutto nel buffer? } catch (IOException e) {System.err.println(e);} C/S in Java: in Java - 28

15 RCP concorrente parallelo try { rcp = new (Porta); System.out.println("Attesa su porta" + rcp.getlocalport()); while(true) { rcpconn = rcp.accept(); threadservizio = new rcp_servizio (rcpconn); threadservizio.start(); } } catch (IOException e) {System.err.println(e);} Si genera un nuovo processo per ogni connessione generata e su questa avviene la interazione Una socket usata è visibile da tutti i thread (condivisione risorse): la prima close chiude la socket definitivamente per tutti i thread Si noti che le socket usate dai thread sono tutte considerate impegnate per il sistema di supporto???e se c'è un limite al numero di socket aperte per processo??? (e le porte?) RCP Processi Figli public class rcp_servizio extends Thread { rcp_servizio( socketdaaccept) {rcpsrv = socketdaaccept;} public void run() { System.out.println("thread numero " + Thread.currentThread()); System.out.println(""Connesso con" + + rcpsrv); try {StrDatiOut=new DataOutputStream (rcpsrv.getoutputstream()); StrDatiIn = new DataInputStream (rcpsrv.getinputstream()); NomeFile = StrDatiIn.readUTF(); FileDaScrivere = new File(NomeFile); if(filedascrivere.exists () == true) /* in caso le cose siano terminate senza invio /* { StrDatiOut.writeUTF( "MSGSrv: file presente, bye"); } C/S in Java: in Java - 29 C/S in Java: in Java - 30

16 /* solo in caso si consenta di trasmettere il file /* else /* scrittura effettiva del file */ { StrDatiOut.writeUTF( "MSGSrv: attendofile"); byte ContentFile [] = new byte [1000]; StrDatiIn.read(ContentFile); FileDaScrivereOutputStream = new FileOutputStream (FileDaScrivere); FileDaScrivereOutputStream.write (ContentFile); } /* chiusura della connessione e terminazione del servitore specifico */ rcpservizio.close(); System.out.println( "Fine servizio thread numero " + Thread.currentThread()); } catch (IOException e) { System.err.println(e); exit(1);} Chiusura delle Le socket in Java impegnano non solo il loro livello applicativo, ma anche una serie di risorse di sistema che sono collegate e necessarie per la operatività La chiusura è quindi necessaria sempre per dichiarare la non necessità di mantenere risorse non più in uso In casa di una socket chiusa, le risorse sono mantenute per un certo tempo (in dipendenza dalla importanza delle operazioni) In caso di socket connessa chiusa, la memoria viene mantenuta per continuare a spedire informazioni da inviare al pari Il pari si accorge di questo tramite: - eventi che gli vengono notificati in caso di operazioni (tipo lettura o scrittura sulla sua socket) - eccezioni o predicati Si vedano alcune funzioni come: isclosed (); isconnected (); isinputshutdown (); isoutputshutdown (); C/S in Java: in Java - 31 C/S in Java: in Java - 32

17 Opzioni delle Si esplorino le opzioni delle socket in Java con funzioni definite SetSoTimeout (int timeout) throws la lettura da socket (es., read()) è bloccante. Questa opzione definisce un timeout (in msec), trascorso il quale si sblocca la read (ma viene lanciata una eccezione da gestire) timeout a zero, nessuna sospensione SetSendBufferSize (int size) throws il buffer di invio dello stream può essere variato SetReceiveBufferSize (int size) il buffer di invio dello stream può essere variato SetReuseAdddress () si possono collegare più processi (e socket) ad un certo indirizzo fisico Solo socket a stream SetSoLinger (boolean on, int linger) dopo la close, il sistema tenta di consegnare i pacchetti ancora in attesa di spedizione. Questa opzione permette di scartare i pacchetti in attesa (linger in sec) SetTcpNoDelay (boolean on) throws il pacchetto è inviato immediatamente, senza bufferizzare SetKeepAlive (boolean on) throws abilita, disabilita la opzione di keepalive Sono previste le get corrispondenti le opzioni sono disponibili nella classe Options URL Inoltre visto l'ampio uso di Indirizzi Web La classe java.net.url La classe URL descrive le risorse Internet protocol handler metodo getcontent content handler Scaricamento di una pagina URL deis = new URL (" BufferedReader in = new BufferedReader( new InputStreamReader( deis.openstream())); String inline; while ((inline = in.readline())!=null) System.out.println(inLine); in.close(); possibilità di agganciarsi dinamicamente ad un URL e di gestire il trasferimento via protocollo HTTP C/S in Java: in Java - 33 C/S in Java: in Java - 34

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Gerarchia delle classi in Java Package java.net le socket rappresentano il

Dettagli

Programmazione di rete in Java Java fornisce supporto per la gestione della comunicazione tramite le classi del package di networking java.

Programmazione di rete in Java Java fornisce supporto per la gestione della comunicazione tramite le classi del package di networking java. Programmazione di rete in Java Java fornisce supporto per la gestione della comunicazione tramite le classi del package di networking java.net Gerarchia delle classi in Java Package java.net le socket

Dettagli

Programmazione di rete in Java Java fornisce supporto per la gestione della comunicazione tramite le classi del package di networking java.

Programmazione di rete in Java Java fornisce supporto per la gestione della comunicazione tramite le classi del package di networking java. Programmazione di rete in Java Java fornisce supporto per la gestione della comunicazione tramite le classi del package di networking java.net Gerarchia delle classi in Java Package java.net le socket

Dettagli

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Gerarchia delle classi in Java Package java.net le socket rappresentano il

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

Dettagli

Architettura Client-Server

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

Dettagli

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP

Dettagli

Datagrammi. NOTA: MulticastSocket estende DatagramSocket

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

Dettagli

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Compito in classe proposto Realizzare un applicazione C/S per trasferire al Client il contenuto

Dettagli

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi Connessioni di rete Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi 1 Socket orientato alla connessione o non orientato alla connessione 2 Socket in astratto 3 Socket modalità

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 2 (proposta) Socket Java con connessione Luca Foschini Anno accademico 2015/2016 Esercitazione 2 1 Specifica

Dettagli

Applicazioni distribuite

Applicazioni distribuite Applicazioni distribuite Maurizio Cozzetto 1 agosto 2009 Un pò di teoria Ricordiamo che un'applicazione distribuita è un'applicazione composta da più programmi (almeno 2) posti in esecuzione su macchine

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette

Dettagli

Parte II: Reti di calcolatori Lezione 10

Parte II: Reti di calcolatori Lezione 10 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione

Dettagli

Parte II: Reti di calcolatori Lezione 12

Parte II: Reti di calcolatori Lezione 12 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 12 Giovedì 16-04-2015 1 Confronto architetture C/S e

Dettagli

Controllo Winsock di Visual Basic

Controllo Winsock di Visual Basic Controllo Winsock di Visual Basic Il controllo Winsock, non visibile all'utente, consente di accedere ai servizi di rete TCP e UDP. Per creare applicazioni client o server non è necessario conoscere in

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Applicazioni web. Parte 5 Socket

Applicazioni web. Parte 5 Socket Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 5 Michele Tomaiuolo tomamic@ce.unipr.it Protocolli Internet I computer

Dettagli

Corso di Reti di Calcolatori L-A

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

Dettagli

Transmission Control Protocol

Transmission Control Protocol Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione

Dettagli

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Altri tipi di connessione

Altri tipi di connessione Altri tipi di connessione Francesca Martelli f.martel@di.unipi.it Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo

Dettagli

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

Telematica II 12. Esercitazione/Laboratorio 4

Telematica II 12. Esercitazione/Laboratorio 4 Server UDP in JAVA Telematica II 12. Esercitazione/Laboratorio 4 DayTime daemon UDP Port 13 obiettivo realizzazione di un servizio per l invio della data/orario del server al client utilizzo di un datagram

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura

Dettagli

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

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. 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

Dettagli

HTTP adaptation layer per generico protocollo di scambio dati

HTTP adaptation layer per generico protocollo di scambio dati HTTP adaptation layer per generico protocollo di scambio dati Sandro Cavalieri Foschini 101786 Emanuele Richiardone 101790 Programmazione in Ambienti Distribuiti I - 01FQT prof. Antonio Lioy A.A. 2002-2003

Dettagli

Corso di Reti di Calcolatori

Corso di Reti di Calcolatori Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che

Dettagli

Programmare con le Socket TCP in java. 2: Application Layer 1

Programmare con le Socket TCP in java. 2: Application Layer 1 Programmare con le Socket TCP in java 2: Application Layer 1 Il Client contatta il server Il Server: Il processo server è sempre attivo in attesa di connessioni (demone) Crea una socket per accettare la

Dettagli

Corso di Reti di Calcolatori. Datagrammi

Corso di Reti di Calcolatori. Datagrammi Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

(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

Dettagli

Java Socket LSO 2008

Java Socket LSO 2008 Java Socket LSO 2008 Modello Client/Server Richiesta di servizio Risposta Il cosiddetto lato client, effettua la richiesta di esecuzione di un servizio. La sua controparte, il lato server, effettua l esecuzione

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II Lezione 5 Giovedì 19-03-2015 1 Intensità del traffico e perdita dei pacchetti La componente

Dettagli

Programmazione dei socket con TCP #2

Programmazione dei socket con TCP #2 I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP D /LQH&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: i inviano al server pacchetti (vuoti) che vengono interpretati dal server come richiesta

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

appunti delle lezioni Architetture client/server: applicazioni server

appunti delle lezioni Architetture client/server: applicazioni server Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante

Dettagli

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)

Dettagli

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Dettagli

Applicazioni web centrati sui dati (Data-centric web applications)

Applicazioni web centrati sui dati (Data-centric web applications) Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento

Dettagli

Networking. Mauro Migliardi Ph. D.

Networking. Mauro Migliardi Ph. D. Software Architectures Networking Mauro Migliardi Ph. D. A word of wisdom The word networking strikes fear in the hearts of many programmers. Fear not! Using the networking capabilities provided in the

Dettagli

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Informatica per la comunicazione" - lezione 8 -

Informatica per la comunicazione - lezione 8 - Informatica per la comunicazione - lezione 8 - I multipli 1 KB (kilo) = 1000 B 1 MB (mega) = 1 mln B 1 GB (giga) = 1 mld B 1 TB (tera) = 1000 mld B Codifica binaria dei numeri Numerazione con base 10:

Dettagli

Laboratorio di Programmazione in rete

Laboratorio di Programmazione in rete Laboratorio di rogrammazione in rete Introduzione alla programmazione C di socket A.A. 2005/06 Comunicazione tra computer Come far comunicare più computer su una rete? Una collezione di protocolli: TC/I

Dettagli

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Programmare con le Socket TCP

Programmare con le Socket TCP Programmare con le Socket TCP Il Client deve contattare il server Il processo server deve già essere attivo Il server deve aver creato una socket che accetta la connessione del client ( socket di benvenuto

Dettagli

Comunicazione. La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI

Comunicazione. La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI Comunicazione La comunicazione point to point e' la funzionalita' di comunicazione fondamentale disponibile in MPI Concettualmente la comunicazione point to point e' molto semplice: Un processo invia un

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 200, ore 1.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola 633688. Sockets e DatagramSocket

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola 633688. Sockets e DatagramSocket Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola 633688 Sockets e DatagramSocket Windows Phone prevede un interfaccia di programmazione per garantire agli sviluppatori

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Reti di Calcolatori. Il software

Reti di Calcolatori. Il software Reti di Calcolatori Il software Lo Stack Protocollare Application: supporta le applicazioni che usano la rete; Transport: trasferimento dati tra host; Network: instradamento (routing) di datagram dalla

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2010/2011 Il progetto consiste nello sviluppo di un applicazione client/server. Sia il server che il client dovranno

Dettagli

Esercitazione [5] Input/Output su Socket

Esercitazione [5] Input/Output su Socket Esercitazione [5] Input/Output su Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client RETI INFORMATICHE - SPECIFICHE DI PROGETTO A.A. 2013/2014 1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014 Il progetto consiste nello sviluppo di un

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) PARTE 1 richiami SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 1 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application

Dettagli

Socket TCP. seconda parte

Socket TCP. seconda parte Socket TCP seconda parte Schema della connessione Computer 1 127.43.18.1 indirizzo I1 indirizzo I2 Computer 2 143.225.5.3 porta 45000 socket porta 5200 socket processo client processo server socket(...)

Dettagli

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Esercizi su strati di trasporto e di rete

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Esercizi su strati di trasporto e di rete Corsi di Reti di Calcolatori (Docente Luca Becchetti) Esercizi su strati di trasporto e di rete 1. Si consideri un protocollo per il trasporto non affidabile di dati realtime. Il sender spedisce un pacchetto

Dettagli

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008 Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome: Corso di laurea e anno: Matricola:

Dettagli

Programmare con le Socket

Programmare con le Socket Programmare con le Socket Corso Reti ed Applicazioni Lab Sockets pag. 1 Programmare con le Socket TCP Il Client deve contattare il server - Il processo server deve già essere attivo - Il server deve aver

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

Protocolli di Comunicazione

Protocolli di Comunicazione Protocolli di Comunicazione La rete Internet si è sviluppata al di fuori dal modello ISO-OSI e presenta una struttura solo parzialmente aderente al modello OSI. L'architettura di rete Internet Protocol

Dettagli

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

API e socket per lo sviluppo di applicazioni Web Based

API e socket per lo sviluppo di applicazioni Web Based API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione

Dettagli

Laboratorio di reti I: Il pacchetto java.net

Laboratorio di reti I: Il pacchetto java.net Laboratorio di reti I: Il pacchetto java.net Stefano Brocchi brocchi@dsi.unifi.it 5 novembre, 2008 Stefano Brocchi Laboratorio di reti I: Il pacchetto java.net 5 novembre, 2008 1 / 43 Concetti di base

Dettagli

Programmazione distribuita in Java. Socket & Client-Server

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

Dettagli

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Corsi di Reti di Calcolatori (Docente Luca Becchetti) NOT : le soluzioni proposte sono volutamente sintetiche. Lo studente dovrebbe fare uno sforzo per risolvere i quesiti in modo autonomo, espandendo

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Esercitazione. Formato di compitini e compiti: domande ed esercizi closed book G. Ferrari - Reti di calcolatori. Esercitazione Formato di compitini e compiti: domande ed esercizi "closed book" Esercitazione - 1 Domanda 1 In una comunicazione di rete tra due host, quale è il client e quale è il server. Necessario:

Dettagli

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica). Topologia delle reti Una RETE DI COMPUTER è costituita da un insieme di elaboratori (NODI) interconnessi tra loro tramite cavi (o sostituti dei cavi come le connessioni wireless). Rete Point-to-Point:

Dettagli

Reti di calcolatori. Reti di calcolatori

Reti di calcolatori. Reti di calcolatori Reti di calcolatori Reti di calcolatori Rete = sistema di collegamento tra vari calcolatori che consente lo scambio di dati e la cooperazione Ogni calcolatore e un nodo, con un suo indirizzo di rete Storia:

Dettagli

L API socket ed i daemon

L API socket ed i daemon L API socket ed i daemon Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/

Dettagli

Standard di comunicazione

Standard di comunicazione Standard di comunicazione Organizzato a livelli per ridurne la complessità e aumentarne la flessibilità il numero dei livelli e le loro funzionalità dipendono dal tipo di rete ogni livello formalizza un

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Esercitazione [6] Client/Server con Socket

Esercitazione [6] Client/Server con Socket Esercitazione [6] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di

Dettagli

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008 Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008 Si consideri una rete di sensori MicaZ con sistema operativo TinyOS, dove ogni nodo è identificato da un ID unico e dove è presente un solo

Dettagli

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 maximiliano.marchesi@studenti.unipr.it Sommario Introduzione..................................................................................

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli