Java: la libreria delle classi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java: la libreria delle classi"

Transcript

1 Java: la libreria delle classi Input/Output in Java il package java.io object serialization La programmazione di rete i package java.net e java.rmi 149 Approccio generale La libreria delle classi Java è di una vastità non indifferente Approccio adottato in questo corso: descrizione delle classi fondamentali e delle funzionalità più importanti Per una descrizione più puntuale si consiglia l uso della guida ipertestuale alla libreria di classi 150

2 Input/Output in Java Il package java.io include classi, interfaccie ed eccezioni per la gestione dell I/O Distinguiamo tra due classi di funzionalità: funzionalità per accedere ad informazioni relative ai file ed alle directory Esempio: dimensione dei file, elenco dei file contenuti in una directory,... funzionalità per leggere e scrivere dati 151 Classi per l accesso alle informazioni relative al file system La classe fondamentale per accedere alle informazioni relative ai file ed alle directory è la classe File E fondamentale tenere presenti i problemi di portabilità del codice: path Unix: /bin:/usr/bin:/usr/local/bin Windows: c:\bin;c:\java\bin percorso di un file Unix: /usr/java/bin/javac Windows: c:\java\bin 152

3 La classe File: costanti public static final String separator il separatore di file (stringa) public static final char separatorchar il separatore di file (carattere) public static final String pathseparator il separatore di path (stringa) public static final char pathseparatorchar il separatore di path (carattere) 153 La classe File: esempio 1 import java.io.*; public class Prova { public static void main(string[] arg) { System.out.println(File.separator+" - "+ File.separatorChar+" - "+ File.pathSeparator+" - "+ File.pathSeparatorChar); Output (su Windows): \ - \ - ; - ; 154

4 La classe File: costruttori public File(String path) public File(String path, String name) public File(File dir, String name) 155 La classe File: metodi principali public String getname() public String getpath() public String getparent() può ritornare null se non esiste il parent public boolean exists() public boolean canread() public boolean canwrite() public boolean isfile() public boolean isdirectory() public long lastmodified() public long length() public boolean mkdir() public boolean mkdirs() public boolean renameto(file dest) public String[] list() public String[] list(filenamefilter f) public boolean delete() 156

5 Lettura e scrittura di dati Distinguiamo tra classi per l accesso sequenziale ai dati di utilizzo generale, non limitate ai file classi per l accesso diretto (random) a dati contenuti su file 157 Classi per la lettura e la scrittura sequenziale di dati Il meccanismo di lettura e scrittura sequenziale dei dati è basato sul concetto di stream Uno stream è un oggetto sul quale è possibile leggere e scrivere dati sequenzialmente Il package java.io include numerose classi per la gestione di stream 158

6 Lettura sequenziale di byte Object (from java.lang) File InputStream FileDescriptor ObjectInputStream FileInputStream PipedInputStream ObjectStreamClass SequenceInputStream ByteArrayInputStream FilterInputStream StringBufferInputStream DataInputStream BufferedInputStream LineNumberInputStream PushBackInputStream 159 La classe InputStream Classe astratta che racchiude tutti i metodi per la lettura da uno stream di byte Metodi principali: public void close() public int available() public long skip(long n) public abstract int read() bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(byte b[]) bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(byte b[], int off, int len) bloccante; ritorna -1 se si è raggiunta la fine dello stream 160

7 La classe FileInputStream Usata per l accesso sequenziale a file di byte Ridefinisce i metodi della classe InputStream fornendone una implementazione per i file Costruttori: public FileInputStream(String name) public FileInputStream(File f) public FileInputStream(FileDescriptor fd) Principali metodi aggiunti public final FileDescriptor getfd() 161 La classe FileInputStream: un esempio import java.io.*; public class ProvaFile { public static void main(string[] args) { if(args.length!=1) {System.err.println("Usage: ProvaFile <nome file>");system.exit(-1); File f=new File(args[0]); FileInputStream fis=null; byte[] b; int byteread; if(!f.exists()) System.err.println("Error: file "+args[0]+ " does not exists"); else if(!f.canread()) System.err.println("Error: cannot read from file "+args[0]); else { b=new byte[(int)f.length()]; try{ fis=new FileInputStream(f); byteread=fis.read(b); System.out.println("Bytes read: "+byteread); catch(exception ex) {ex.printstacktrace(); finally {try{fis.close();catch(exception e){e.printstacktrace(); 162

8 La classe FilterInputStream Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro di vario tipo Si appoggia ad un InputStream esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe InputStream 163 La classe BufferedInputStream Sfrutta un buffer interno per ottimizzare la lettura Fornisce prestazioni decisamente superiori alla classica InputStream 164

9 La classe DataInputStream Fornisce metodi per leggere i diversi tipi base del linguaggio Java da un InputStream esistente (passato al momento della costruzione) Sfrutta lo standard UniCode per leggere i dati in maniera indipendente dalla piattaforma Principali metodi aggiunti: readboolean, readbyte, readinteger, readshort, readlong, readfloat, readdouble, readchar, readunsignedbyte, readunsignedshort 165 Gli altri input stream ByteArrayInputStream permette di creare un InputStream a partire da un array di byte (usato come sorgente di informazioni) PipedInputStream usato per leggere da una pipe SequenceInputStream usato per leggere da una sequenza di InputStream come se fossero uno solo PushbackInputStream permette di rimandare indietro uno o più byte letti LineNumberInputStream e StringBufferInputStream l uso di queste classi è stato superato nella versione 1.1 di Java dall introduzione delle classi Reader 166

10 Output sequenziale Object (from java.lang) OutputStream ObjectOutputStream PipedOutputStream ByteArrayOutputStream FilterOutputStream FileOutputStream DataOutputStream BufferedOutputStream PrintStream 167 La classe OutputStream Classe astratta che racchiude tutti i metodi per la scrittura da uno stream di byte Metodi principali: public void close() public void flush() public abstract void write(byte b) public void write(byte b[]) public void write(byte b[], int off, int len) 168

11 La classe FileOutputStream Usata per la scrittura di file sequenziali di byte Ridefinisce i metodi della classe OutputStream fornendone una implementazione per i file Costruttori: public FileOutputStream(String name) public FileOutputStream(String name, boolean app) public FileOutputStream(File f) public FileOutputStream(FileDescriptor fd) Principali metodi aggiunti public final FileDescriptor getfd() 169 La classe FileOutputStream: esercizio Si scriva un programma Java che svolge le stesse funzioni del comando copy di dos 170

12 La classe FilterOutputStream Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro di vario tipo Si appoggia ad un OutputStream esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe OutputStream 171 La classe BufferedOutputStream Sfrutta un buffer interno per ottimizzare la scrittura di dati Fornisce prestazioni decisamente superiori alla classica OutputStream 172

13 Le classi buffered: esercizio Si riscriva l esercizio precedente (copy) sfruttando le classi buffered per ottimizzare le prestazioni 173 La classe DataOutputStream Fornisce metodi per scrivere i diversi tipi base del linguaggio Java da un OutputStream esistente (passato al momento della costruzione) Sfrutta lo standard UniCode per scrivere i dati in maniera indipendente dalla piattaforma Principali metodi aggiunti: writeboolean, writebyte, writeinteger, writeshort, writelong, writefloat, writedouble, writechar, writeunsignedbyte, writeunsignedshort 174

14 Gli altri output stream ByteArrayOutputStream permette di creare un OutputStream a partire da un array di byte (usato come sorgente di informazioni) PipedOutputStream usato per scrivere su una pipe PrintStream l uso di questa classe è stato superato nella versione 1.1 di Java dall introduzione delle classi Writer 175 Lettura e scrittura sequenziale di testo Le classi Reader e Writer inglobano le funzionalità per leggere stream sequenziali di caratteri 176

15 Reader Object (from java.lang) Reader PipedReader StringReader CharArrayReader BufferedReader FilterReader InputStreamReader LineNumberReader PushbackReader FileReader 177 La classe Reader Classe astratta che racchiude tutti i metodi per la lettura da uno stream di caratteri Metodi principali: public void close() public long skip(long n) public abstract int read() bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(char c[]) bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(char c[], int off, int len) bloccante; ritorna -1 se si è raggiunta la fine dello stream 178

16 La classe InputStreamReader Costituisce il ponte tra gli stream di byte e quelli di caratteri Effettua la conversione da byte a caratteri in maniera dipendente dal particolare encoding adottato Costruttori: public InputStreamReader(InputStream is) public InputStreamReader(InputStream is, String encoding) 179 La classe FileReader Usata per l accesso sequenziale a file di caratteri Ridefinisce i metodi della classe InputStreamReader fornendone una implementazione specifica per i file di caratteri Costruttori: public FileReader(String name) public FileReader(File f) public FileReader(FileDescriptor fd) 180

17 La classe FileReader: un esempio import java.io.*; public class ProvaFile { public static void main(string[] args) { if(args.length!=1) {System.err.println("Usage: ProvaFile <nome file>");system.exit(-1); File f=new File(args[0]); FileReader fr=null; char[] c; int charread; if(!f.exists()) System.err.println("Error: file "+args[0]+ " does not exists"); else if(!f.canread()) System.err.println("Error: cannot read from file "+args[0]); else { c=new char[(int)f.length()]; try{ fr=new FileReader(f); charread=fr.read(c); System.out.println(new String(c)); catch(exception ex) {ex.printstacktrace(); finally {try{fr.close();catch(exception e){e.printstacktrace(); 181 La classe FilterReader Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro su stream di caratteri Si appoggia ad un Reader esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe Reader 182

18 La classe BufferedReader Sfrutta un buffer interno per ottimizzare la lettura Si appoggia ad un Reader esistente (passato al momento della costruzione) Fornisce prestazioni decisamente superiori alla classica Reader Metodi aggiunti public String readline() 183 Gli altri Reader CharArrayReader un reader a partire da un array di caratteri StringReader un reader a partire da una stringa PushbackReader permette di rimandare indietro uno o più caratteri letti LineNumberReader public void setlinenumber(int ln) 184

19 Writer Object (from java.lang) Writer PipedWriter StringWriter CharArrayWriter BufferedWriter FilterWriter OutputStreamWriter PrintWriter FileWriter 185 La classe Writer Classe astratta che racchiude tutti i metodi per la scrittura da uno stream di caratteri Metodi principali: public void close() public void flush() public abstract void write(int) public void write(char c[]) public int write(char c[], int off, int len) public void write(string s) public int write(string s, int off, int len) 186

20 La classe OutputStreamWriter Costituisce il ponte tra gli stream di byte e quelli di caratteri Effettua la conversione da byte a caratteri in maniera dipendente dal particolare encoding adottato Costruttori: public OutputStreamWriter(OutputStream is) public OutputStreamWriter(OutputStream is, String encoding) 187 La classe FileWriter Usata per la scrittura sequenziale di file di caratteri Ridefinisce i metodi della classe OutputStreamWriter fornendone una implementazione specifica per i file di caratteri Costruttori: public FileWriter(String name) public FileWriter(File f) public FileWriter(FileDescriptor fd) 188

21 La classe FilterWriter Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro su stream di caratteri Si appoggia ad un Writer esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe Writer 189 La classe BufferedWriter Sfrutta un buffer interno per ottimizzare la scrittura Si appoggia ad un Writer esistente (passato al momento della costruzione) Fornisce prestazioni decisamente superiori alla classica Writer Metodi aggiunti public void newline() 190

22 Reader e writer: esercizio Si scriva un programma che copia un file di testo sostituendo i termini incontrati come specificato su linea di comando Si scriva un programma che legge un file di testo e stampa a video solo le linee contenenti una certa stringa passata come parametro (grep) 191 Gli altri Writer CharArrayWriter un writer a partire da un array di caratteri StringWriter un writer a partire da una stringa PrintWriter permette la stampa di tutti i tipi base di Java come stringhe fornisce metodi analoghi a quelli dell oggetto System.out 192

23 I file ad accesso diretto (random) Gestiti attraverso i servizi della classe RandomAccessFile fornisce metodi per leggere e scrivere dati funzionalità per l accesso diretto: public long getfilepointer() public native void seek(long pos) 193 Altre classi del package java.io La classe StreamTokenizer fornisce funzionalità avanzate per estrarre token da uno stream di caratteri E possibile decidere liberamente i separatori da adottare 194

24 Object serialization Meccanismo che permette la lettura e scrittura di qualsiasi oggetto Java su uno stream Realizza una deep copy a partire da un oggetto vengono copiati sullo stream tutti gli oggetti ad esso collegati (direttamente o indirettamente) Gli oggetti devono implementare l interfaccia Serializable Vengono letti e scritti tutti gli attributi non static e non transient Sfrutta le classi ObjectInputStream e ObjectOutputStream Permette una semplice implementazione di oggetti persistenti 195 La programmazione di rete Consente la comunicazione tra applicazioni Java che risiedono su macchine diverse Si possono sfruttare i socket (TCP o UDP) o la più avanzata libreria RMI 196

25 Socket TCP Le classi per la gestione dei socket (TCP o UDP) sono parte del package java.net Schema logico di funzionamento di una applicazione client/server basata su socket TCP Una applicazione server rimane in attesa su una porta logica Una applicazione client apre una connessione verso la macchina sulla quale gira il server specificando la porta Il server riceve la connessione e apre una canale di comunicazione In genere i server sono applicazioni multithreaded un thread per ogni connessione aperta più un server in attesa di nuove connessioni 197 La classe ServerSocket Usata per realizzare server che attendono connessioni TCP Costruttore principale: public ServerSocket(int port) Metodi principali: public synchronized void setsotimeout(int timeout) permette di scegliere un timeout per la accept (in millisecondi) public synchronized int getsotimeout() public Socket accept() bloccante se timeout=0 public InetAddress getinetaddress() public int getlocalport() public void close() 198

26 La classe Socket Costruttori principali: public Socket(String host, int port) public Socket(InetAddress host, int port) Metodi principali: public InetAddress getinetaddress() public InetAddress getlocaladdress() public int getport() public int getlocalport() public InputStream getinputstream() public OutputStream getoutputstream() public void close() public synchronized void setsotimeout(int timeout) permette di scegliere un timeout per la lettura dei byte dall InputStream associato (in millisecondi) public synchronized int getsotimeout() 199 I socket TCP: un esempio import java.net.*; import java.io.*; public class ProvaServerTCP { public static void main(string[] args) { ServerSocket serversocket = null; try { serversocket = new ServerSocket(4444); catch (IOException e) { System.out.println("Could not listen on port: " ", "+e);system.exit(-1); Socket socket = null; while(true) { try { socket = serversocket.accept(); new ServerThread(socket).start(); catch (IOException e) { System.out.println("Accept failed: " ", " + e); System.exit(1); class ServerThread extends Thread { Socket socket; public ServerThread(Socket s) { socket=s; public void run() { try { BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()) ); String inputline; while ((inputline=br.readline())!=null){ System.out.println(inputLine); if (inputline.equals("bye.")) break; br.close(); socket.close(); catch (IOException ex) {e.printstacktrace(); 200

27 I socket TCP: esercizio Scrivere un programma Java che si colleghi al server precedentemente descritto ed invii una serie di stringhe prima di terminare con la stringa Bye. 201 I socket UDP Il protocollo UDP costituisce una alternativa al protocollo TCP E caratterizzato dall essere un protocollo unreliable e connectionless Fornisce però prestazioni superiori Connessioni UDP si realizzano in Java sfruttando i servizi delle classi DatagramPacket e DatagramSocket 202

28 Le altre classi del package java.net Il package java.net fornisce altre classi per: usare gli URL sfruttare il protocollo HTTP sfruttare i servizi forniti dal multicast IP 203 Remote Method Invocation Attraverso i servizi RMI è possibile invocare metodi su un oggetto remoto Un oggetto remoto è ogni oggetto che implementi una interfaccia che estende l interfaccia java.rmi.remote Gli oggetti remoti si comportano come gli oggetti tradizionali è possibile passare riferimenti ad oggetti remoti nelle chiamate a metodo La differenza principale riguarda il passaggio di parametri non remoti a metodi di oggetti remoti il passaggio è fatto per copia (i parametri devono essere serializable) Lo stesso vale per i valori di ritorno restituiti da metodi di oggetti remoti 204

29 Implementazione di una applicazione client/server basata su RMI: server Si crea una interfaccia che descriva i servizi forniti dal server (che estenda java.rmi.remote) tutti i metodi devono dichiarare di sollevare l eccezione java.rmi.remoteexception Si implementa il server come sottoclasse di java.rmi.server.unicastremoteobject come classe generica che reimplementi i metodi equals, hashcode e tostring in maniera da mantenere la semantica corretta in tal caso il server deve essere esplicitamente esportato per essere visibile ai client (metodo java.rmi.server.unicastremoteobject.exportobject) il server può essere registrato sul rmiregistry attraverso un nome simbolico il server dovrebbe impostare come security manager un RMISecurityManager Si compila il server Si creano le classi stub e skeleton attraverso il compilatore rmic Si lancia il server 205 Implementazione di una applicazione client/server basata su RMI: client Si implementa il client Il client ottiene un riferimento all oggetto remoto passato da altri oggetti ottenuto accedendo all rmiregistry Il client può invocare tutti i metodi elencati nell interfaccia remota implementata dal server Non occorre un particolare processo di compilazione per il client 206

30 Implementazione di una applicazione client/server basata su RMI: rmiregistry Il rmiregistry fornisce un servizio di directory per RMI Un server RMI si può registrare su un rmiregistry attraverso un nome simbolico Un client RMI può: ottenere un riferimento ad un server RMI indicando il nome simbolico chiedere la lista dei server disponibili Tali servizi sono realizzati attraverso le classi: java.rmi.naming java.rmi.registry.locateregistry java.rmi.registry.registry e l eseguibile rmiregistry 207 Esempio RMI: l interfaccia del server import java.rmi.*; public interface ProvaRMIServer extends Remote { public void print(string s) throws RemoteException; 208

31 Esempio RMI: l implementazione del server import java.rmi.*; import java.rmi.server.unicastremoteobject; public class ProvaRMIServerImpl extends UnicastRemoteObject implements ProvaRMIServer { public static void main(string[] args) { try { System.setSecurityManager(new RMISecurityManager()); ProvaRMIServerImpl server = new ProvaRMIServerImpl(); Naming.rebind("polimi/ProvaRMIServer", server); System.out.println("Server bound"); catch (Exception e) { e.printstacktrace(); public ProvaRMIServerImpl() throws RemoteException { public void print(string s) throws RemoteException { System.out.println(s); 209 Esempio RMI: il client import java.rmi.*; public class ProvaRMIClient { public static void main(string[] args) { try { System.out.println("Looking up server..."); ProvaRMIServer server = (ProvaRMIServer) Naming.lookup("rmi://"+args[0]+"ProvaRMIServer"); System.out.println("Server bound..."); server.print("prima prova"); server.print("seconda prova"); catch (Exception e) { e.printstacktrace(); 210

32 Esempio RMI: la compilazione javac ProvaRMIServerImpl compila il server java ProvaRMIClient compila il client rmic ProvaRMIServerImpl crea le classi ProvaRMIServer_Skel e ProvaRMIServer_Stub rmiregistry lancia il registry java ProvaRMIServerImpl lancia il server java ProvaRMIClient localhost lancia il client dicendo di collegarsi a localhost 211 Il deployment Le classi stub devono essere accessibili al client (attraverso un opportuno class loader) Il caso delle applet le classi stub devono essere inserite nella stessa directory della classe dell applet (sul server http) il classloader usato è AppletClassLoader il server RMI deve girare sullo stesso host su cui gira il server http dal quale viene scaricata l applet 212

INPUT OUTPUT

INPUT OUTPUT INPUT OUTPUT Il package java.io include classi, interfacce ed eccezioni per la gestione dellʼi/o. Si può distinguere tra due classi di funzionalità: per leggere e scrivere dati (anche in maniera indipendente

Dettagli

Lettura e scrittura - Stream

Lettura e scrittura - Stream Lettura e scrittura - Stream Obiettivo(fine della lezione): leggere/scrivere da/su file (e quindi verso qualsiasi dispositivo) Tipi di stream Stream di caratteri Stream di byte Classi astratte che implementano

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

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

Input/Output in Java

Input/Output in Java Corso Java Input/Output in Java Docente: Dott. Marco Bianchi Slide realizzate da Ing. A.Bei, Dott. M.Bianchi, Dott. F.Lombardi Input/Output in Java Per effettuare operazioni di I/O in Java è possibile

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

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

Lettura e scrittura - Stream

Lettura e scrittura - Stream Lettura e scrittura - Stream Obiettivo(fine della lezione): leggere/scrivere da/su file (e quindi verso qualsiasi dispositivo)! Tipi di stream " Stream di caratteri " Stream di byte! Classi astratte che

Dettagli

Jav@Lab Il linguaggio Java I file sequenziali

Jav@Lab Il linguaggio Java I file sequenziali Jav@Lab Il linguaggio Java I file sequenziali Input e Output Secondo i canoni dei linguaggi di programmazione "procedurali" il concetto di input e output è strettamente legato al tipo di dispositivo esterno

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

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

Indice. 1 Java I/O API. Indice

Indice. 1 Java I/O API. Indice Indice Indice 1 Java I/O API 1 1.1 Flussi di byte in input/output....................................... 2 1.2 Leggere e scrivere su file......................................... 4 1.3 Flussi di caratteri

Dettagli

Java I/O API. Java I/O. G. Grossi. 10 gennaio G. Grossi Lezione 11

Java I/O API. Java I/O. G. Grossi. 10 gennaio G. Grossi Lezione 11 Java I/O G. Grossi 10 gennaio 2007 Indice 1 Java I/O API Il sistema I/O: questioni generali Creare un buon sistema I/O è uno dei compiti più difficili per i progettisti di linguaggi Questo fatto è evidenziato

Dettagli

Il package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera.

Il package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera. IL PACKAGE JAVA.IO Il package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera. Il package può essere classificato secondo vari punti

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

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

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

Input/Output in Java

Input/Output in Java Input/Output in Java 1 Comunicare con il mondo Praticamente ogni programma ha la necessità di comunicare con il mondo esterno Con l utente attraverso tastiera e video Con il file system per leggere e salvare

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

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

Fondamenti di Informatica C Esercitazioni di Laboratorio / 4 Outline

Fondamenti di Informatica C Esercitazioni di Laboratorio / 4  Outline Fondamenti di Informatica C Esercitazioni di Laboratorio / 4 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola demola.francesco@unimore.it DII, Modena Via Vignolese (lab. Dottorandi

Dettagli

Java I/O e serializzazione

Java I/O e serializzazione Java I/O e serializzazione Caratteristiche dell I/O in Java Diverse classi per gestire I/O differenti sotto un unica struttura. Possibilità di combinare classi differenti. Modalità di interazione distinte

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

Il linguaggio Java. Gli stream

Il linguaggio Java. Gli stream Il linguaggio Java Gli stream Overview Uno stream è un flusso unidirezionale di informazioni da una sorgente esterna ovvero verso una sorgente esterna a cui si accede in modo sequenziale 2 Algoritmi di

Dettagli

LETTURA E SCRITTURA DI FILE

LETTURA E SCRITTURA DI FILE LETTURA E SCRITTURA DI FILE (slide: A. Baratè L.A. Ludovico) Programmazione per la Musica Adriano Baratè LA CLASSE FILE La classe File fornisce una rappresentazione astratta del percorso (pathname) di

Dettagli

File e Stream In Java. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132

File e Stream In Java. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 File e Stream In Java Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 Lettura da e scrittura su file Java fornisce operazioni di input/output tramite le classi del package java.io. La

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

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

Gestione di file in Java

Gestione di file in Java CAPITOLO 17 Gestione di file in Java Ogni insieme di informazioni residenti su memoria di massa costituisce in Java un flusso di dati che è denominato stream. Più in particolare un input stream costituisce

Dettagli

02CBI - M. Morisio. I/O in Java. Input Output. Classi di Primo Livello - java.io. Stream. Pag. 1

02CBI - M. Morisio. I/O in Java. Input Output. Classi di Primo Livello - java.io. Stream. Pag. 1 Input Output I/O in Java Stream Buffer File StringTokenizer, StreamTokenizer Serializzazione Stream Stream Tutte le operazioni di I/O si riferiscono all astrazione dello STREAM (flusso di byte) Uno stream

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è

Dettagli

Java I/O e serializzazione

Java I/O e serializzazione Java I/O e serializzazione Caratteristiche dell I/O in Java Diverse classi per gestire I/O differenti sotto un unica struttura. Possibilita di combinare classi differenti. Modalita di interazione distinte

Dettagli

Input/Output. Introduzione. Stream. Capitolo 10 LORENZO BETTINI

Input/Output. Introduzione. Stream. Capitolo 10 LORENZO BETTINI Capitolo 10 Input/Output LORENZO BETTINI Introduzione In questo capitolo verrà illustrato il package java.io, che supporta il sistema fondamentale di input/output (I/O) di Java. Nei programmi Java vengono

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

IL PACKAGE java.io CONCETTO BASE: LO STREAM

IL PACKAGE java.io CONCETTO BASE: LO STREAM IL PACKAGE java.io Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. CONCETTO BASE: LO STREAM Uno stream è un canale di comunicazione

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

IL PACKAGE java.io. Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione.

IL PACKAGE java.io. Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. IL PACKAGE java.io Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. CONCETTO BASE: LO STREAM Uno stream è un canale di comunicazione

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

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

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

Il sistema I/O di Java

Il sistema I/O di Java Programmazione Java:. Il sistema I/O di Java romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Stream I/O Gestione di stream byte oriented Filtri Gestione di stream char oriented

Dettagli

Gestione dell I/O su File

Gestione dell I/O su File Fondamenti di Informatica Prof. Alfredo Cuzzocrea University of Trieste Gestione dell I/O su File Credits to: Prof. L. Badia UniPD Lettura da e scrittura su file Java fornisce operazioni di input/output

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

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

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

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

Variabili e Metodi di classe Interfacce e Package File in Java

Variabili e Metodi di classe Interfacce e Package File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe definisce un

Dettagli

Laboratorio di reti I: Java IO

Laboratorio di reti I: Java IO Laboratorio di reti I: Java IO Stefano Brocchi brocchi@dsi.unifi.it 15 ottobre, 2008 Stefano Brocchi Laboratorio di reti I: Java IO 15 ottobre, 2008 1 / 28 Gli InputStream e gli OutputStream Gli stream

Dettagli

Java. Il package java.io

Java. Il package java.io Java Il package java.io Flussi e canali I flussi permettono operazioni di I/O bloccanti (java.io) I canali permettono operazione di I/O oltre che bloccanti anche operazioni non bloccanti (java.nio) 1 IL

Dettagli

Programmazione 2. Input Output su Stream e File

Programmazione 2. Input Output su Stream e File Programmazione 2 Input Output su Stream e File Stream In generale ogni programma ha un flusso (stream) di dati in input ed uno in output. Stream di input Stream di output Input/Output in Java Il package

Dettagli

14 Input-Output. Outline. Goal della lezione. Argomenti. Mirko Viroli a.a. 2013/2014

14 Input-Output. Outline. Goal della lezione. Argomenti. Mirko Viroli a.a. 2013/2014 14 Input-Output Mirko Viroli mirko.viroli@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 013/014 Mirko Viroli (Università di Bologna) OOP14: I/O

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file

Dettagli

Organizzazione della lezione. Lezione 14 Remote Method Invocation - 2. Remote. Il diagramma di RemoteHello

Organizzazione della lezione. Lezione 14 Remote Method Invocation - 2. Remote. Il diagramma di RemoteHello Organizzazione della lezione Lezione 14 Remote Method Invocation - 2 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

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

15 Input-Output. Mirko Viroli C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena

15 Input-Output. Mirko Viroli C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena 15 Input-Output Mirko Viroli mirko.viroli@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 2015/2016 Mirko Viroli (Università di Bologna) OOP15:

Dettagli

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

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Sfortunatamente, una tale classe non esiste

Dettagli

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio Esercitazione di Laboratorio 5/12/2007 Sviluppare un applicazione RMI per la gestione di un elezione. Il server esporta un insieme di metodi: public void vota(string nome): accetta come parametro il nome

Dettagli

Esercizi su Callback RMI

Esercizi su Callback RMI Esercizi su Callback RMI Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 03/12/2008 Esercizio Settimana Scorsa Sviluppare un applicazione RMI per la gestione

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 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client

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 6 Cosa faremo oggi 2 Comunicazione RMI Comunicazione RMI Multi-Thread Remote Method Invocation 3 L obiettivo è di

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file La classe

Dettagli

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio LPR 2005/2006 Lezione 7 paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio PARADIGMA DI INTERAZIONE A DOMANDA/RISPOSTA Paradigma di interazione

Dettagli

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto

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

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

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 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019

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

Java I/O. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Java I/O. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi. Java I/O Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it Introduzione Spesso un programma deve acquisire dati da una sorgente o inviare

Dettagli

ProgrammazioneJava. Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila. diruscio@di.univaq.it

ProgrammazioneJava. Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila. diruscio@di.univaq.it ProgrammazioneJava Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila diruscio@di.univaq.it. Dimensioni nella gestione dell I/O 2 2 Formato dei dati Audio/Video MPEG, DiVX

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 18 Le classi per l'input/output nel pacchetto java.io

Lezione 18 Le classi per l'input/output nel pacchetto java.io Lezione 18 Le classi per l'input/output nel pacchetto java.io Il package java.io incapsula le funzionalità di Input/Output (I/O) di Java. Come tutti i programmatori presto imparano, le applicazioni informatiche

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

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

Introduzione. Java. Streams. Streams

Introduzione. Java. Streams. Streams Java il sistema di I/O G. Prencipe prencipe@di.unipi.it Introduzione La gestione del sistema di I/O è una parte fondamentale di qualsiasi linguaggio di programmazione In questa lezione approfondiremo la

Dettagli

Lezione 16 programmazione in Java

Lezione 16 programmazione in Java Lezione 16 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Approfondimenti della programmazione OO I FILE Sgli stream (flussi) I file ad

Dettagli

Lettura e scrittura di dati

Lettura e scrittura di dati Il package java.io Lettura e scrittura di dati I dati possono provenire/essere inviati su molte sorgenti/destinazioni Memoria Dischi Rete In ogni caso un uno stream sorgentre/streeam destinazione deve

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

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 09 - I/O in Java. Il package java.io

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 09 - I/O in Java. Il package java.io Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 09 - I/O in Java 1 Il package

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

Remote Method Invocation

Remote Method Invocation JAVA RMI LSO 2008 Remote Method Invocation Perché RMI? L obiettivo è di permettere ad una applicazione in esecuzione su una macchina locale di invocare i metodi di un oggetto in esecuzione su un altro

Dettagli

789:;<:' .&+/"0&12%34%5&66+,("%3787%% %"+&%88$77%9%8:$:7%% ;<'&12%8%=,+>"%3787 % % % %"+&%88$77%9%8:$:7%

789:;<:' .&+/0&12%34%5&66+,(%3787%% %+&%88$77%9%8:$:7%% ;<'&12%8%=,+>%3787 % % % %+&%88$77%9%8:$:7% !"#$"%&'()')*+'!"#$%!&'()%*&++,+&-%%!"#$%&'"(()("*+,#$'"&$-. 789:;"%3787 % % % %"+&%88$77%9%8:$:7%?("'(%)"'"%'&0% 0,6"+,@"+("%1(%A'5"+=,B/,%C+,'1&$%

Dettagli

Organizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota

Organizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota Organizzazione della lezione 10. Invocazione di Metodi Remoti Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Modelli di programmazione:

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

10. Invocazione di Metodi Remoti

10. Invocazione di Metodi Remoti 10. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Programmazione Distribuita.

Dettagli

PACKAGE DI I/O. Dott. Riccardo Zese.

PACKAGE DI I/O. Dott. Riccardo Zese. PACKAGE DI I/O Dott. Riccardo Zese riccardo.zese@unife.it Comunicare con il mondo Praticamente ogni programma ha la necessità di comunicare con il mondo esterno Con l utente attraverso tastiera e video

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

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

Interfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable?

Interfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable? Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Interfaccia Comparable class Contatore implements Comparable

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

Corso di Reti di Calcolatori LA

Corso di Reti di Calcolatori LA Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LA RMI: callback Silvia Vecchi Anno accademico 2003/2004 RMI: Callback 1 Callback (1) Molte applicazioni richiedono

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

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di

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

Linguaggi. I/O in Java. - lezione 09 - Corso di Laurea in Ingegneria delle Telecomunicazioni A.A

Linguaggi. I/O in Java. - lezione 09 - Corso di Laurea in Ingegneria delle Telecomunicazioni A.A Linguaggi Corso di Laurea in Ingegneria delle Telecomunicazioni A.A. 2010-2011 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 09 - I/O in Java 1 Il

Dettagli