Organizzazione della lezione. Lezione 10 Interprocess Communication in Java. Gli obiettivi del middleware. Middleware

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Organizzazione della lezione. Lezione 10 Interprocess Communication in Java. Gli obiettivi del middleware. Middleware"

Transcript

1 Organizzazione della lezione Lezione 10 Interprocess Communication in Java Vittorio Scarano Corso di Programmazione Distribuita ( ) Laurea di I livello in Informatica Università degli Studi di Salerno Middleware e Interprocess Communication Internetworking API (Application Programming Interface) Stream Socket e TCP/UDP Le Api di Java per UDP per TCP 2 Middleware Gli obiettivi del middleware Strato che si trova sopra la rete ed i sistemi operativi e sotto le applicazioni Obiettivo: nascondere la eterogeneità degli strati inferiori Applicazioni middleware S.O. rete 3 Nascondere la piattaforma combinazione di Sistema Operativo network software network hardware computer hardware Obiettivo nascondere eterogeneità Attraverso la realizzazione di modelli di programmazione comuni che possono essere usati come blocchi base applicazioni & servizi middleware sistema operativo computer & network hardware piattaforma 4

2 I layer del middleware Interprocess Communication Applicazioni e servizi Chiamata a Procedure Remote oppure Invocazione di Metodi Remoti Protocolli di request-reply Marshalling e Rappresentazione Esterna dei Dati UDP and TCP. r e a w le d id m Permette la comunicazione tra processi Meccanismi per: gestione dei malfunzionamenti fornire una semplice interfaccia Nasconde le differenze tra comunicazione locale e remota: è tutta remota 5 6 Le operazioni di IPC Organizzazione della lezione Permesso da due operazioni send receive Con due varianti sincrone operazioni bloccanti sulla send (attende una receive) e sulla receive (attende una send) asincrone operazioni non bloccanti: send (trasmissione del messaggio in parallelo con la continuazione del processo) e receive (il buffer viene riempito mentre il processo continua) Middleware e Interprocess Communication Internetworking API (Application Programming Interface) Stream Socket e TCP/UDP Le Api di Java per UDP per TCP 7 8

3 Ciò che fanno i programmi (non( molto) Cosa è uno stream? Prendi dati, fanne qualcosa, memorizza il risultato Gli stream sono una maniera per prendere dati e trasferirli da qualche altra parte le device sono spesso trattati come stream Per usare una device fare setup/creare di un oggetto che rappresenta dove (o da dove) saranno inviati (o ricevuti) i dat inviare (ricevere) i dati Lo schermo non è uno stream: l utente lo vede per intero si aspetta di poterlo manipolare (insert/remove) la adiacenza indica relazioni su più dimensioni righe e colonne 9 Uno stream è una sequenza ordinata di byte java.io.inputstream: dati che da una sorgente esterna possono essere usati dal programma int read() int read(byte[] b) int read(byte[] b, int off, int len) void mark(int readlimit) boolean marksupported() void reset() java.io.outputstream: dati che il programma può inviare void close() void flush() void close() int available() long skip(long n) void write(byte[] b) void write(byte[] b, int off, int len) void write(int b) 10 Stream di Input Stream di Output Lettura in sequenza SequenceInputStream FileInputStream BufferedInputStream I Filtri trasformano dati da uno stream in un altro InputStream FilterInputStream DataInputStream... e molti altri PipedInputStream ByteArrayInputStream ObjectInputStream InflaterInputStream Pipes tra thread ProgressMonitorInputStream usato per la serializzazione javax.swing java.util.zip 11 Gli stream sono come i carabinieri della famosa barzelletta: sono sempre presenti in coppia! uno sa leggere (dallo stream) e l altro sa scrivere (sullo stream) Per ogni tipo di InputStream (tranne SequenceInputStream) c è il corrispondente OutputStream associato FileInputStream --> FileOutputStream DataInputStream --> DataOutputStream 12

4 Gli stream di filtro (FilterStream) Organizzazione della lezione Trasformano dati da un altro stream Middleware e Interprocess Communication si comportano da wrapper: prendono stream reali e ne presentano i dati in formato diverso Filter Stream Filter Stream Filter Stream Filter Stream Internetworking API (Application Programming Interface) Stream Socket e TCP/UDP Le Api di Java per UDP per TCP Cosa è un socket Destinazione dei messaggi Una idea (originalmente) da BSD Unix presente in tutti i sistemi operativi attuali La rete è come un file system basta scrivere e leggere stream di dati Un socket è associato ad una porta così che la giusta applicazione possa trattare i dati Vantaggi: concettualmente semplici indipendenti da linguaggio e piattaforma efficienti compatibili con applicazioni legacy 15 client sockets message port server domain name oppure IP address 16

5 I layer di TCP/IP Incapsulamento dei messaggi inviati Layers Application Transport Internet Network interface Underlying network Messaggio Messaggi (UDP) o Stream (TCP) pacchetti UDP o TCP datagram IP Frames Network-specific Ethernet header IP IP header TCP TCP header Ethernet frame port Application message L effetto: cosa si vede di TCP/IP Tipico uso dei socket in Java su WWW La vista di TCP/IP che ha il programmatore Il client scarica un applet Java UDP Application TCP Astrazione Message passing Datagram Best effort Non affidabile TCP Astrazione Stream Affidabile IP Application UDP 19 che si connette ad un server Java in ascolto sulla stessa macchina del server (vincolo imposto per la sicurezza) Implementazione di layer di presentazione/business distribuita su più livelli 20

6 Gli svantaggi dei socket per la programmazione a oggetti Basati su stream tra due oggetti si perde la astrazione: solo un flusso di dati Tutte le funzionalità avanzate come sicurezza, load balancing, etc vanno implementate codificando metadati nello stream e facendono il parsing all altro capo Socket(InetAddress address, int port) Socket(InetAddress address, int port, InetAddress localaddr, int localport) Socket(String host, int port) void close() InetAddress getinetaddress() InetAddress getlocaladdress() int getlocalport() InputStream getinputstream() OutputStream getoutputstream() int getport() 21 Organizzazione della lezione Middleware e Interprocess Communication Internetworking API (Application Programming Interface) Stream Socket e TCP/UDP Le Api di Java per UDP per TCP 22 In certi casi i socket TCP sono overkilling Come spedire Datagram: checklist I socket forniscono la illusione di un circuito dedicato al costo di riassemblare pacchetti in stream rimandare pacchetti, handshake, etc. Socket UDP: DatagramSocket ogni pacchetto viene individualmente indirizzato pacchetti indipendenti (fino a 64K) controllo esplicito del protocollo di comunicazione 1. Creare un DatagramSocket 2. Creare un array di bytes che contiene i dati da inviare 3. Creare un DatagramPacket che usi l array di byte e un indirizzo 4. Spedirlo con il metodo offerto dal socket socket = new DatagramSocket(PORT); //Step 1 //.crea l array buf di byte da inviare //Step 2 packet = new DatagramPacket(buf, buf.length, address, port); //Step 3 socket.send(packet); //Step

7 Come ricevere un Datagram: checklist Le API di Java per UDP 1. Creare un DatagramSocket Due classi: DatagramPacket e DatagramSocket 2. Creare un array di byte come buffer per memorizzare i dati ricevuti 3. Creare un DatagramPacket che usi il buffer 4. Istruire il socket a prelevare il Datagram dall indirizzo socket = new DatagramSocket(PORT); //Step 1 // crea un array di byte buf per ricevere i dati //Step 2 packet = new DatagramPacket(buf, buf.length);//step 3 socket.receive(packet); //Step 4 DatagramPacket costruttore per creare un datagram (da inviare) con un array di byte, la sua lunghezza, indirizzo IP e porta costruttore per creare un datagram (da ricevere) con un array di byte e la sua lunghezza (come buffer) DatagramSocket costruttore (specifica della porta) send e receive setsotimeout Un esempio per UDP: UDPDemo Un esempio per UDP: UDPClient (1) Un semplice servizio di echo ad ogni richiesta risponde con la stessa stringa ricevuta Due componenti: UDPClient: su linea di comando: messaggio da spedire, host a cui spedire UDPServer: attende l invio di un messaggio, lo stampa a video e lo rispedisce 27 import java.net.*; import java.io.*; public class UDPClient { public static void main (String args[ ]) { DatagramSocket asocket= null; asocket = new DatagramSocket(); byte [ ] m = args[0].getbytes(); InetAddress ahost = InetAddress.getByName(args[1]); int serverport=6789; DatagramPacket request = new DatagramPacket(m, args[0].length(), ahost, serverport); asocket.send(request); //. Blocco try..catch Creazione socket Dalla linea di comando: preleva il messaggio primo argomento preleva l indirizzo secondo argomento Creazione datagram Invio 28

8 Un esempio per UDP: UDPClient (2) Un esempio per UDP: UDPServer (1) //. byte[ ] buffer = new byte [1000]; DatagramPacket reply= new DatagramPacket(buffer, buffer.length); asocket.receive(reply); System.out.println("Reply:"+ new String (reply.getdata())); catch (SocketException e) {System.out.println("Socket: +e.getmessage()); catch (IOException e) {System.out.println("IO: +e.getmessage()); finally {if (asocket!= null) asocket.close(); Creazione di un buffer per la lettura Creazione datagram Ricezione e stampa Catch Infine, chiude il socket import java.net.*; import java.io.*; public class UDPServer { public static void main (String args[ ]) { DatagramSocket asocket= null; System.out.println("Listening..."); asocket = new DatagramSocket(6789); byte[ ] buffer = new byte [1000]; while (true) { java.util.arrays.fill(buffer,new Integer(0).byteValue()); DatagramPacket request=new DatagramPacket(buffer, buffer.length); asocket.receive(request); // Creazione di un socket Creazione di un buffer per la lettura Azzeramento buffer Creazione datagram Ricezione Un esempio per UDP: UDPServer (2) Organizzazione della lezione String s = new String(request.getData()); System.out.println ("Received:"+ s.trim()+" from:"+ request.getaddress()); DatagramPacket reply=new DatagramPacket(request.getData(), request.getlength(), request.getaddress(), request.getport()); asocket.send(reply); catch (SocketException e) {System.out.println("Socket:"+ e.getmessage()); catch (IOException e) {System.out.println("IO:"+ e.getmessage()); finally {if (asocket!= null) asocket.close(); Lettura stringa Costruzione reply Invio reply Catch Infine si chiude il socket 31 Middleware e Interprocess Communication Internetworking API (Application Programming Interface) Stream Socket e TCP/UDP Le Api di Java per UDP per TCP 32

9 Le API di Java per TCP Due classi: ServerSocket e Socket ServerSocket usata dal server per creare un socket per ascoltare le connect dei client il metodo accept() è bloccante fino alla ricezione e restituisce un Socket Socket usata dal client per collegarsi al server metodi getinputstream() e getoutputstream() 33 Un esempio per TCP: TCPDemo Un semplice servizio di echo Tre classi TCPClient su linea di comando prende il messaggio e l host del server TCPServer server multithreaded: attende una connessione, quando è stabilita crea un oggetto Connection che tratta la connessione con un client Connection estende Thread ripete al client quello riceve TCPclient client connect stream TCPserver Connection server 34 Il diagramma delle classi di TCPDemo Un esempio per TCP: TCPClient (1) 35 import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[ ]) { Socket s = null; int serverport =NUMEROPORTA; s = new Socket (args[1], serverport); DataInputStream in = new DataInputStream( s.getinputstream()); DataOutputStream out = new DataOutputStream( s.getoutputstream()); out.writeutf(args[0]); String data = in.readutf(); System.out.println ("Received: +data); // continua Porta Creazione socket Preleva input e output stream come argomento a DataInputStream e DataOutputStream Scrive i dati UTF: universal Text Format (1 byte per Ascii 2 per UNICODE) Legge la risposta e la 36 stampa

10 Un esempio per TCP: TCPClient (2) Un esempio per TCP: TCPServer // continua. catch (EOFException e) {System.out.println ("EOF"+ e.getmessage()); catch (IOException e) {System.out.println ("IO"+ e.getmessage()); finally { if (s!=null) s.close(); catch (IOException e) {System.out.println ( "IO Client"+ e.getmessage()); static final int NUMEROPORTA = 7896; Catch per operazioni su socket e stream Comunque alla fine se il socket è stato aperto allora lo chiude blocco try..catch per la chiusura 37 import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[ ]){ System.out.println("Listening.."); int serverport =NUMEROPORTA; ServerSocket listensocket = new ServerSocket(serverPort); while (true) { Socket clientsocket = listensocket.accept(); Connection c= new Connection (clientsocket); catch (IOException e) {System.out.println ("IO Listen:"+ e.getmessage()); static final int NUMEROPORTA = 7896; Porta usata Creazione di un ServerSocket Ciclo per: accept di connessioni lancio del thread per la gestione della connessione Catch 38 Un esempio per TCP: Connection (1) Un esempio per TCP: Connection (2) import java.net.*; import java.io.*; public class Connection extends Thread { public Connection(Socket aclientsocket){ clientsocket= aclientsocket; in = new DataInputStream( clientsocket.getinputstream()); out = new DataOutputStream( clientsocket.getoutputstream()); this.start(); catch (IOException e) {System.out.println ("IO Connection"+ e.getmessage()); // continua Costruttore preleva il socket passato al costruttore assegna input stream assegna output stream lancia il thread Catch 39 public void run( ) { String Data = in.readutf(); System.out.println("Ho letto:"+data); out.writeutf ("E io ripeto:"+data); catch (EOFException e) {System.out.println ("EOF Conn."+ e.getmessage()); catch (IOException e) {System.out.println ("IO Conn."+ e.getmessage()); finally { clientsocket.close(); catch (IOException e) {System.out.println ( "IO Conn. (close)" e.getmessage()); // fine run() DataInputStream in; DataOutputStream out; Socket clientsocket; Legge i dati Li rispedisce Catch Comunque alla fine chiude il socket blocco try..catch per la chiusura Variabili istanza 40

Organizzazione della lezione. Organizzazione della lezione. Middleware. Communication in Java. 9. Interprocess

Organizzazione della lezione. Organizzazione della lezione. Middleware. Communication in Java. 9. Interprocess 9. Interprocess Communication in Java Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Sockete TCP/UDP 3 Socket e TCP/UDP Middleware

Dettagli

9. Interprocess Communication in Java

9. Interprocess Communication in Java 9. Interprocess Communication in Java Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Middleware e

Dettagli

9. Java: Introduzione al Networking

9. Java: Introduzione al Networking 9. Java: Introduzione al Networking Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Networking

Dettagli

ASD: Sistemi Distribuiti (Prof. Scarano) 07/05/2002

ASD: Sistemi Distribuiti (Prof. Scarano) 07/05/2002 Organizzazione della lezione 9. Java: Introduzione al Networking Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Networking

Dettagli

Interprocess Communication

Interprocess Communication Strati middleware Interprocess Communication Comunicazione fra processi cooperanti in sistemi distribuiti Applicazioni e servizi Supporto di comunicazione fra oggetti Gestione e mascheramento di guasti

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

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 5 Cosa faremo oggi 2 Comunicazione tramite TCP socket Comunicazione tramite UDP socket RIPASSO: Input Output 3 In

Dettagli

Sockets in Java. Lorenzo Gallucci

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

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

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

Principi, Modelli e Applicazioni per Sistemi Distribuiti M Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 1 (Svolta) Socket Java senza connessione Alessandro Pernafini Lab1 - svolta

Dettagli

27/2/2006. Lezione n.3 LPR-Informatica Applicata sockets UDP. Università degli Studi di Pisa. Laura Ricci 1. Dipartimento di Informatica.

27/2/2006. Lezione n.3 LPR-Informatica Applicata sockets UDP. Università degli Studi di Pisa. Laura Ricci 1. Dipartimento di Informatica. Università degli Studi di Pisa Lezione n.3 LPR-Informatica Applicata sockets UDP 27/2/2006 Laura Ricci Laura Ricci 1 SCHEMA DELLA PRESENTAZIONE Meccanismi di comunicazione interprocess (IPC) Rappresentazione

Dettagli

Modello client-server

Modello client-server Modello -server Il server fornisce servizi sulla rete Viene eseguita l applicazione server su un host L applicazione attende connessioni dalla rete Il usufruisce del servizio attraverso la rete Deve conoscere

Dettagli

Socket in Java. Modelli di comunicazione

Socket in Java. Modelli di comunicazione Socket in Java Programmazione in Ambienti Distribuiti A.A. 2003-04 Modelli di comunicazione Connesso (stream-oriented) Basato sulla metafora del tubo Permette lo scambio di informazioni tra due partner

Dettagli

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

Dettagli

Parte II: Reti di calcolatori Lezione 11 (35)

Parte II: Reti di calcolatori Lezione 11 (35) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Parte II: Reti di calcolatori Lezione 11 (35) Martedì 11-04-2017 1 Programmazione

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

socket ottobre Fonti [Liu] Chapter 2, Interprocess Communication [Liu] Chapter 4, The Socket API Luca Cabibbo Comunicazione interprocesso e

socket ottobre Fonti [Liu] Chapter 2, Interprocess Communication [Liu] Chapter 4, The Socket API Luca Cabibbo Comunicazione interprocesso e Luca Cabibbo Architetture Software Comunicazione interprocesso e socket Dispensa MW 2 ottobre 2008 1 -Fonti [CDK/4e] Chapter 4, Interprocess Communication [Liu] Chapter 2, Interprocess Communication [Liu]

Dettagli

LPR A 2005/2006 Lezione 5. Riepilogo Caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server Esempi

LPR A 2005/2006 Lezione 5. Riepilogo Caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server Esempi LPR A 2005/2006 Lezione 5 Riepilogo Caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server Esempi DATAGRAM SOCKET API: RIASSUNTO DELLE PUNTATE PRECEDENTI un Datagram

Dettagli

Socket (TCP/IP) Socket (TCP/IP) Concetto di socket. Cenni (reti)

Socket (TCP/IP) Socket (TCP/IP) Concetto di socket. Cenni (reti) Socket (TCP/IP) M. Danelutto LPRb A.A. 2007-2008 Socket (TCP/IP) M. Danelutto LPRb A.A. 2007-2008 Concetto di socket Astrazione presa di rete Comunicazione fra processi su macchine diverse O fra processi

Dettagli

Lezione n.7 LPR- Informatica Applicata

Lezione n.7 LPR- Informatica Applicata Lezione n.7 LPR- Informatica Applicata 26/3/2006 Laura Ricci Laura Ricci 1 RIASSUNTO DELLA LEZIONE Riepilogo caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server

Dettagli

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione

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

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

Esercitazione: Socket Java senza connessione

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

Dettagli

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

Principi, Modelli e Applicazioni per Sistemi Distribuiti M Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura

Dettagli

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita:

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: JAVA - I/O System Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: 1. InputStream: Flusso di byte in ingresso. Con questa classe

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java File Flussi e file Flusso (stream) = sequenza di dati di input: da cui leggere di output: su cui scrivere I file sono visti come flussi di dati Il package java.io definisce

Dettagli

Corso sul linguaggio Java

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

Dettagli

A. Ferrari Java: Stream e File

A. Ferrari Java: Stream e File Java: Stream e File la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

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

(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

A. Ferrari Stream e File

A. Ferrari Stream e File Stream e File Java la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

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

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

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

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

Applicazioni web. Parte 10 Socket. Alberto Ferrari

Applicazioni web. Parte 10 Socket. Alberto Ferrari Applicazioni web Parte 10 Socket Protocolli I computer collegati ad Internet comunicano tra loro usando il Transmission Control Protocol (TCP) o lo User Datagram Protocol (UDP) Quando si scrivono programmi

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

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

TECN.PROG.SIST.INF. I Socket Roberta Gerboni 2015 - Roberta Gerboni Socket e porte I sistemi operativi multitasking possono fare girare contemporaneamente più processi dove ogni processo può rendere disponibili anche più servizi. Questi devono essere

Dettagli

Parte II: Reti di calcolatori Lezione 13 (37)

Parte II: Reti di calcolatori Lezione 13 (37) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Parte II: Reti di calcolatori Lezione 13 (37) Giovedì 26-04-2018 1 Programmazione

Dettagli

Protocollo UDP. User Data Protocol

Protocollo UDP. User Data Protocol User Data Protocol User Data Protocol Protocollo UDP non affidabile (può perdere pacchetti) ricezione pacchetti non ordinati senza connesione punto punto o multicast molto piu' efficiente di TCP utilizzato

Dettagli

Network Programming. Java Programming Language. Network Programming TIGA 1

Network Programming. Java Programming Language. Network Programming TIGA 1 Network Programming Java Programming Language Network Programming TIGA 1 Modello a scambio di messaggi I processi interagiscono attraverso una rete di comunicazione I processi non condividono alcuna risorsa

Dettagli

20/12/2010. Package java.net (Socket ServerSocket) Package java.rmi (uso di oggetti remoti)

20/12/2010. Package java.net (Socket ServerSocket) Package java.rmi (uso di oggetti remoti) Package java.net (Socket ServerSocket) Package java.rmi (uso di oggetti remoti) La classe URL cattura il concetto di indirizzo Internet (URL) nella forma standard: http://localhost/index.html file:///autoexec.bat

Dettagli

ALTRI TIPI DI CONNESSIONE

ALTRI TIPI DI CONNESSIONE ALTRI TIPI DI CONNESSIONE Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo che la nostra applicazione voglia ricevere

Dettagli

Server Sequenziale. Server Concorrente. Socket Java con connessione. Materiale addizionale per esercitazioni facoltative

Server Sequenziale. Server Concorrente. Socket Java con connessione. Materiale addizionale per esercitazioni facoltative Materiale addizionale per esercitazioni facoltative Socket Java con connessione Server Sequenziale Std Input Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server

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

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 1 (svolta) Socket Java senza connessione Luca Foschini Anno accademico 2017/2018 Esercitazione 1 1 Architettura

Dettagli

Socket in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 17 -

Socket in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 17 - Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 17 - Socket in Java 1 Java in

Dettagli

Lezione n.5 LPR-Informatica Applicata 13/3/2006

Lezione n.5 LPR-Informatica Applicata 13/3/2006 Lezione n.5 LPR-Informatica Applicata 13/3/2006 1 LA CLASSE BYTEARRAYOUTPUTSTREAM Definisce una struttura dati protected byte buf [ ]; protected int count buf memorizza i bytes che vengono scaricati sullo

Dettagli

Java in Rete. Socket in Java. Linguaggi. Corso di Laurea Ingegneria Informatica (M-Z) A.A

Java in Rete. Socket in Java. Linguaggi. Corso di Laurea Ingegneria Informatica (M-Z) A.A Linguaggi Corso di Laurea Ingegneria Informatica (M-Z) A.A. 2006-2007 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Socket in Java 1 Java in Rete Java permette

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

! " # $ % &! ' ( ) (! 9 :! ; " / < 0 < "! 9 0 & %. 0 % & =! < 0 ; <. < > > <! 9?! ". & %!

!  # $ % &! ' ( ) (! 9 :! ;  / < 0 < ! 9 0 & %. 0 % & =! < 0 ; <. < > > <! 9?! . & %! ! " # $ % &! ' ( ) (! 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

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

Esercizio Trasferimento File e Multicast

Esercizio Trasferimento File e Multicast Esercizio Esercizio Trasferimento File e Esercitazione di Laboratorio 14/11/2007 Esercizio Trasferimento File e Esercizio Esercizio Trasferimento File Sviluppare un applicazione distribuita che offra il

Dettagli

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier Fondamenti di Internet e Reti Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier Fondamenti di Internet e Reti Programmazione Socket Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

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

Organizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation

Organizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation Organizzazione della lezione Lezione 12 Introduzione a Remote Method Invocation Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi

Dettagli

Protocolli Internet. Canale di comunicazione. canale di comunicazione

Protocolli Internet. Canale di comunicazione. canale di comunicazione Network Programming Java Programming Language Livelli di middleware Applicazioni e servizi RMI send, receive, read, write serializzazione UDP e TCP Rete 2 Protocolli Internet Un processo è definito da

Dettagli

Informatica. Prof. A. Longheu. Input e Output

Informatica. Prof. A. Longheu. Input e Output Informatica Prof. A. Longheu Input e Output 1 Il package java.io Il package java.io definisce i concetti base per gestire l I/O da qualsiasi sorgente e verso qualsiasi destinazione. L obiettivo è fornire

Dettagli

Reti (già Reti di Calcolatori )

Reti (già Reti di Calcolatori ) Reti (già Reti di Calcolatori ) Cenni di Socket Programming Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Socket API Programmazione dei socket Obiettivo:imparare

Dettagli

API Socket di Berkeley

API Socket di Berkeley Laboratorio Reti di Calcolatori (A.A. 2008-2009) Programmazione di rete ed interfaccia API socket di Berkeley Delfina Malandrino delmal@dia.unisa.it http://www.dia.unisa.it/professori/delmal/ API Socket

Dettagli

Applicazioni di rete

Applicazioni di rete Applicazioni di rete Programmi in esecuzione su end systems che comunicano attraverso la rete esempio: web server comunica con browser application transport network data link physical Non è necessario

Dettagli

La paninoteca. Mi resta da scrivere solo costo()

La paninoteca. Mi resta da scrivere solo costo() La paninoteca Mi resta da scrivere solo costo() La paninoteca Usiamo l ereditarietà per definire dei Panini particolari Ci sono alcuni tipi di pane Estendendo Panino scrivo meno codice Nell esempio eredito

Dettagli

Capitolo 2: Livello di applicazione

Capitolo 2: Livello di applicazione Programmazione delle socket in Java Nota per l utilizzo: Abbiamo preparato queste slide con l intenzione di renderle disponibili a tutti (professori, studenti, lettori). Sono in formato PowerPoint in modo

Dettagli

Introduzione ai (Java) socket

Introduzione ai (Java) socket Introduzione ai (Java) socket Ivan Lanese slides originali di Tassi, Gessa, Ghini Dipartimento di Scienze dell informazione April 14, 2010 Outline Argomenti reti di calcolatori livelli OSI internet protocol

Dettagli

LETTURA DI DATI DA INPUT

LETTURA DI DATI DA INPUT LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream FileDescriptor InputStream SequenceInputStream ByteArrayInputStream

Dettagli

URL e CONNESSIONI JAVA E LA RETE COMUNICAZIONE. URL e CONNESSIONI ESEMPIO CON URL ESEMPIO CON URL

URL e CONNESSIONI JAVA E LA RETE COMUNICAZIONE. URL e CONNESSIONI ESEMPIO CON URL ESEMPIO CON URL JAVA E LA RETE L architettura Java è network-ready Package java.net Concetti (classi) fondamentali:, Server URL, AudioClip, Image Package java.rmi Uso di oggetti remoti URL e CONNESSIONI La classe URL

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

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte) INPUT OUTPUT 2004-05 Le operazioni di I/O avvengono attraverso stream (sequenze di byte) programma stream in lettura sorgente Programmazione in rete e laboratorio programma stream in scrittura destinazione

Dettagli

SD.5b.1 17:04. Middleware e rete. Destinatario. Mittente send. Message passing. receive. comunicazione sincrona

SD.5b.1 17:04. Middleware e rete. Destinatario. Mittente send. Message passing. receive. comunicazione sincrona Comunicazione: Socket,, RPC ed RMI - Socket (1/3) Comunicazione: Socket,, RPC ed RMI - Socket (2/3) Comunicazione: Socket,, RPC ed RMI - Socket (3/3) Creare un applicazione distribuita Socket: Canali di

Dettagli

Lezione n.4 LPR INFORMATICA APPLICATA CONNECTION ORIENTED SOCKETS

Lezione n.4 LPR INFORMATICA APPLICATA CONNECTION ORIENTED SOCKETS Università degli Studi di Pisa Lezione n.4 LPR INFORMATICA APPLICATA CONNECTION ORIENTED SOCKETS 10/03/2008 Laura Ricci Laura Ricci 1 RIASSUNTO DELLA PRESENTAZIONE Discussione di alcuni esercizi assegnati

Dettagli

domenica 9 giugno 13 Serializzazione

domenica 9 giugno 13 Serializzazione Serializzazione A cosa serve? Ad ottenere una rappresentazione di una struttura dati che possiamo memorizzare, trasmettere via rete Cosa possiamo serializzare? OK NO Tipi primitivi, Riferimenti stringhe

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

Laurea in Informatica. "Programmazione Distribuita" - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione

Laurea in Informatica. Programmazione Distribuita - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione 12. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Modelli di programmazione:

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

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

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

Lezione n.7b. TCP Sockets & Multicast. 24/11/2009 Vincenzo Gervasi

Lezione n.7b. TCP Sockets & Multicast. 24/11/2009 Vincenzo Gervasi Università degli Studi di Pisa Dipartimento di Informatica Lezione n.7b LPR-A-09 TCP Sockets & Multicast 24/11/2009 Vincenzo Gervasi ULezione 7: TCP Sockets e Multicast Vincenzo Ger asi 1 GRUPPI DI PROCESSI:

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

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 21 Riassunto

Dettagli

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE Disciplina: Tecnologie e Progettazione di Sistemi Informatici e di Telecomunicazione Cognome e Nome:

Dettagli

I/O Streams in Java. Lorenzo Gallucci

I/O Streams in Java. Lorenzo Gallucci I/O Streams in Java Lorenzo Gallucci I/O Streams La libreria Java dispone di un API sofisticata per l interfacciamento I/O Il package di riferimento è java.io Due classi principali InputStream, per l input

Dettagli

Parte II: Reti di calcolatori Lezione 12 (36)

Parte II: Reti di calcolatori Lezione 12 (36) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Parte II: Reti di calcolatori Lezione 12 (36) Martedì 24-04-2018 1 Confronto

Dettagli

JAVA E LA RETE IL CONCETTO DI SOCKET. RETI DI CALCOLATORI Linguaggio Java: La Programmazione di Rete. già pronta!! COMUNICAZIONE VIA SOCKET CORSO DI

JAVA E LA RETE IL CONCETTO DI SOCKET. RETI DI CALCOLATORI Linguaggio Java: La Programmazione di Rete. già pronta!! COMUNICAZIONE VIA SOCKET CORSO DI Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia JAVA E LA RETE CORSO DI RETI DI CALCOLATORI Linguaggio Java: La Programmazione di Rete Prof. Franco Zambonelli Lucidi

Dettagli

Unità 2 I file binari

Unità 2 I file binari Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA file binari file di tipi primitivi file di oggetti serializzazione (B) CONOSCENZA E COMPETENZA Rispondere alle seguenti domande

Dettagli

LEZIONE N.5 LPR INFORMATICA APPLICATA CONNECTION ORIENTED SOCKETS (2)

LEZIONE N.5 LPR INFORMATICA APPLICATA CONNECTION ORIENTED SOCKETS (2) LEZIONE N.5 LPR INFORMATICA APPLICATA CONNECTION ORIENTED SOCKETS (2) 17/03/2008 Laura Ricci Laura Ricci 1 STREAM MODE SOCKET API: INTEZIONE CON SERVERS PREDEFINITI Esercizio: considerare un servizio attivo

Dettagli

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 18,19 15,19/11/2013

Dettagli

Lezione n.3 LIVELLO TRASPORTO

Lezione n.3 LIVELLO TRASPORTO Università degli Studi di Pisa Lezione n.3 SSIS INFORMATICA LIVELLO TRASPORTO 30/11/2007 Laura Ricci Laura Ricci 1 LIVELLO TRASPORTO realizza un supporto per la comunicazione logica tra processi distribuiti

Dettagli

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2012/2013

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2012/2013 Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale Anno Accademico 2012/2013 Streams Maggior parte della programmazione di rete è eseguire operazione di input e output. Sposto byte

Dettagli