9. Java: Introduzione al Networking

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "9. Java: Introduzione al Networking"

Transcript

1 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 in Java Stream Socket (TCP/UDP) Le Api di Java per UDP: UDPDemo Le Api di Java per TCP: TCPDemo Chiamate di metodi di oggetti remoti da un server locale ad uno remoto: un esempio 2 1

2 Interprocess Communication Supportato 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) 3 Ciò che fanno i programmi (non molto) 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 4 2

3 Cosa è uno stream? 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) java.io.outputstream: dati che il programma può inviare void close() void flush() void mark(int readlimit) boolean marksupported() void reset() void close() int available() long skip(long n) void write(byte[] b) void write(byte[] b, int off, int len) void write(int b) 5 Stream di Input Pipes tra thread Lettura in sequenza InputStream PipedInputStream SequenceInputStream FileInputStream BufferedInputStream FilterInputStream DataInputStream ByteArrayInputStream ObjectInputStream InflaterInputStream ProgressMonitorInputStream usato per la serializzazione javax.swing I Filtri trasformano dati da uno stream in un altro... e molti altri java.util.zip 6 3

4 Stream di Output 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 7 Gli stream di filtro (FilterStream) Trasformano dati da un altro stream si comportano da wrapper: prendono stream reali e ne presentano i dati in formato diverso Filter Stream Filter Stream Filter Stream Filter Stream 8 4

5 Cosa è un socket 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 9 Svantaggi dei socket 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() 10 5

6 In certi casi i socket TCP sono overkilling 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 11 Come spedire Datagram Creare un DatagramSocket Creare un array di bytes che contiene i dati da inviare Creare un DatagramPacket che usi l array di byte e un indirizzo Spedirlo con il metodo offerto dal socket socket = new DatagramSocket(PORT); packet = new DatagramPacket(buf, buf.length, address, port); socket.send(packet); 12 6

7 Come ricevere un Datagram Creare un DatagramSocket Creare un array di byte come buffer per memorizzare i dati ricevuti Creare un DatagramPacket che usi il buffer Istruire il socket a prelevare il Datagram dall indirizzo socket = new DatagramSocket(PORT); packet = new DatagramPacket(buf, buf.length); socket.receive(packet); 13 Le API di Java per UDP Due classi: DatagramPacket e DatagramSocket 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 14 7

8 Un esempio per UDP: UDPDemo 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 15 Un esempio per UDP: UDPClient (1) import java.net.*; import java.io.*; public class UDPClient { public static void main (String args[ ]) { DatagramSocket asocket= null; try { 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 16 8

9 Un esempio per UDP: UDPClient (2) //. 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 17 Un esempio per UDP: UDPServer (1) import java.net.*; import java.io.*; public class UDPServer { public static void main (String args[ ]) { DatagramSocket asocket= null; System.out.println("Listening..."); try { 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 // 18 9

10 Un esempio per UDP: UDPServer (2) 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 Invioreply Catch Infine si chiude il socket 19 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() 20 10

11 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 estendethread ripete al client quello che ha ricevuto 21 Il diagramma delle classi di TCPDemo TCPServer TCPClient clientsocket in out Uses.. Connection Socket DataOutputStream DataOutputStream 22 11

12 Un esempio per TCP: TCPClient (1) import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[ ]) { Socket s = null; try { int serverport =7896; 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 23 stampa Un esempio per TCP: TCPClient (2) // continua. catch (EOFException e) {System.out.println ("EOF"+ e.getmessage()); catch (IOException e) {System.out.println ("IO"+ e.getmessage()); finally { if (s!=null) try { s.close(); catch (IOException e) {System.out.println ( "IO Client"+ e.getmessage()); Catch per operazioni su socket e stream Comunque alla fine se il socket è stato aperto allora lo chiude blocco try..catch per la chiusura 24 12

13 Un esempio per TCP: TCPServer import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[ ]){ System.out.println("Listening.."); try { int serverport =7896; 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()); Porta usata Creazione di un ServerSocket Ciclo per: accept di connessioni lancio del thread per la gestione della connessione Catch 25 Un esempio per TCP: Connection (1) import java.net.*; import java.io.*; public class Connection extends Thread { public Connection(Socket aclientsocket){ try { clientsocket= aclientsocket; in = new DataInputStream( clientsocket.getinputstream()); out = new DataOutputStream( clientsocket.getoutputstream()); this.start(); catch (IOException e) {System.out.println ("IO Connection"+ e.getmessage()); Costruttore preleva il socket passato al costruttore assegna input stream assegna output stream lancia il thread Catch // continua 26 13

14 Un esempio per TCP: Connection (2) public void run( ) { try { 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 {try { 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 27 Chiamate di metodi di oggetti remoti L uso delle primitive di comunicazione TCP/IP è efficiente ma scomodo e poco produttivo quando si devono utilizzare i metodi messi a disposizione dagli oggetti Necessario scrivere esplicitamente il trattamento delle comunicazioni definizione di un protocollo di comunicazione parsing del comando gestione degli errori etc. etc

15 Un esempio di soluzione (senza RMI) Senza infrastrutture che permettono la chiamata di metodi remoti (Remote Method Invocation) Un esempio semplice: un oggetto PersonServer che contiene nome, luogo e anno di nascita un oggetto PersonClient che ne usa i metodi per accedere ai valori delle variabili di istanza Un programma Person in versione locale (Client e Server sono sulla stessa JVM) in versione remota 29 Person locale: PersonServer public class PersonServer { public PersonServer(String n, String p, int y) { name = n; place = p; year = y; String getname () { return name; String getplace () { return place; int getyear () { return year; // variabili di istanza String name; String place; int year; Costruttore Metodi di accesso nome luogo di nascita anno di nascita Variabili di istanza 30 15

16 Person locale: PersonClient public class PersonClient { public static void main(string args[ ]) { PersonServer person = new PersonServer("Vittorio", "Napoli", 1964); System.out.println ("Nome:" +person.getname() ); System.out.println ("Luogo di Nascita:" + person.getplace() ); System.out.println ("Anno di Nascita:" + person.getyear() ); Creazione oggetto (locale) riferimento Uso dei metodi dell oggetto nome luogo di nascita anno di nascita 31 Person remoto: struttura Si creano due classi che servono per la comunicazione stub : lato client serve a offrire i metodi del server verso il client gestisce la comunicazione verso lo skeleton skeleton: lato server chiama i metodi del server come richiesto dallo stub restituisce i valori di ritorno allo stub Come fa il client a conoscere cosa offre lo stub? sia stub che il server implementano una interfaccia comune che indica i metodi offerti dal server 32 16

17 Person remoto: il diagramma 33 Person remoto: il diagramma 34 17

18 Person remoto: PersonServer public class PersonServer implements Person { public PersonServer(String n, String p, int y) { name = n; place = p; year = y; String getname () { return name; String getplace () { return place; int getyear () { return year; // variabili di istanza String name; String place; int year; Identico a PersonServer locale tranne che nella implementazione della interfaccia Costruttore Metodi di accesso nome luogo di nascita anno di nascita Variabili di istanza 35 Person remoto: il diagramma 36 18

19 Person remoto: interface Person public interface Person { public String getname() throws Throwable; public String getplace() throws Throwable; public int getyear() throws Throwable; Interfaccia usata sia dallo Stub che dal server Metodi di accesso nome luogo di nascita anno di nascita 37 Person remoto: il diagramma 38 19

20 Person remoto: SimplePersonClient public class SimplePersonClient { public static void main(string args[ ]) { try { Person person = new Person_Stub(args[0]); System.out.println ("Nome:" + person.getname()); System.out.println ("Luogo Nascita:" + person.getplace()); System.out.println ("Anno Nascita:" + person.getyear()); catch (Throwable t) {t.printstacktrace(); // end main Host del server sulla linea di comando Creazione di uno stub variabile di reference di tipo Person Chiamate dei metodi sullo stub nome luogo di nascita anno di nascita 39 Protocollo tra Stub e Skeleton Lo Stub implementa tutti i metodi offerti dalla interface Person Il costruttore apre un socket verso lo skeleton Per ogni metodo usa lo stream in output per scrivere il nome del metodo da fare eseguire attende il valore restituito e lo restituisce al Client Lo skeleton riconosce il metodo da eseguire effettua le chiamate sul server restituisce il valore di ritorno 40 20

21 Person remoto: il diagramma 41 Person remoto: Person_Stub (1) import java.io.*; import java.net.*; public class Person_Stub implements Person { public Person_Stub(String host) throws Throwable{ socket = new Socket (host, 9000); out= new ObjectOutputStream( socket.getoutputstream()); in= new ObjectInputStream( socket.getinputstream()); public String getname () throws Throwable { out.writeobject("getname"); out.flush(); return (String) in.readobject(); // continua Implementa Person Costruttore: apre un socket su host dello skeleton crea input ed output ObjectStream Metodo getname() scrive il nome del metodo sul socket restituisce la stringa restituita (letta dal socket) 42 21

22 Person remoto: Person_Stub (2) public String getplace () throws Throwable { out.writeobject("getplace"); out.flush(); return (String) in.readobject(); public int getyear () throws Throwable { out.writeobject("getyear"); out.flush(); return in.readint(); public void close () { try { socket.close(); catch (IOException e) {System.out.println ("Chiusura socket!"); // variabili di istanza Socket socket; ObjectOutputStream out; ObjectInputStream in; Metodo getplace() Metodo getyear() Metodoclose() non nella interface permette una chiusura pulita non strettamente necessario Variabili di istanza 43 Person remoto: il diagramma 44 22

23 Person remoto: Person_Skeleton (1) import java.io.*; import java.net.*; public class Person_Skeleton extends Thread { public Person_Skeleton(PersonServer server){ myserver = server; public static void main (String args[ ]) { PersonServer person = new PersonServer ("Vittorio","Napoli",1964); Person_Skeleton skel = new Person_Skeleton(person); skel.start(); // continua Estende Thread Costruttore parametro: un PersonServer Main istanzia un oggetto PersonServer passa al suo costruttore il suo riferimento fa partire il thread 45 Person remoto: Person_Skeleton (2) public void run() { Socket socket = null; String method; try { ServerSocket serversocket = new ServerSocket(9000); socket = serversocket.accept(); ObjectInputStream instream = new ObjectInputStream ( socket.getinputstream()); ObjectOutputStream outstream = new ObjectOutputStream ( socket.getoutputstream()); while (true) { method = (String) instream.readobject(); if (method.equals("getname")) { outstream.writeobject( myserver.getname()); outstream.flush(); else // continua Apertura ServerSocket Alla accettazione preleva stream di input e di output Ciclo: leggi dal socket il metodo da invocare chiamata al metodo getname() scrive in output la risposta del PersonServer 46 23

24 Person remoto: Person_Skeleton (3) else if (method.equals("getplace")) { outstream.writeobject( myserver.getplace()); outstream.flush(); else if (method.equals("getyear")){ outstream.writeint( myserver.getyear()); outstream.flush(); else break; // end while true catch (EOFException e) {System.out.println ( Chiuso!"); catch (Throwable t) {t.printstacktrace(); finally { try {socket.close(); catch (IOException e) {e.printstacktrace();system.exit(0); // end metodo run PersonServer myserver; Chiamata al metodo getplace() scrive in output la risposta del PersonServer Chiamata al metodo getyear() scrive in output la risposta del PersonServer Catch Comunque alla fine chiude il socket Variabile di istanza 47 Un client più complesso PersonClient permette tramite una semplice shell di comandi la invocazione di metodi selezionati dall utente Il resto delle classi rimane identico Struttura di PersonClient legge da standard input (con un Buffered Stream) fa un semplice parsing dei comandi comandi per chiamate remote (getname, getplace, getyear) comando per la chiusura (con il metodo close offerto dallo stub) 48 24

25 Person remoto: il diagramma 49 Person remoto: PersonClient (1) import java.util.*; import java.io.*; public class PersonClient { public static void main(string args[]) { Person person = null; String host = args[0]; BufferedReader in=null; String cmd; try { in = new BufferedReader(new InputStreamReader(System.in)); person = new Person_Stub(host); for (;;) { System.out.print("Comandi >"); cmd = in.readline(); if (cmd.equals ("close")) break; else // continua Host del server sulla linea di comando Creazione di uno stub variabile di reference di tipo Person Lettura da stdin apertura di uno stream da System.in Parsing comandi prompte input se close esci dal ciclo 50 25

26 Person remoto: PersonClient (2) else if (cmd.equals ("getname")) System.out.println ("Nome:" + person.getname()); else if (cmd.equals ("getplace")) System.out.println ( "Luogo di Nascita:" + person.getplace()); else if (cmd.equals ("getyear")) System.out.println ( "Anno Nascita:" + person.getyear()); else System.out.println ( ERRORMSG); // end for catch (Throwable t) {t.printstacktrace(); finally { Person_Stub p =(Person_Stub) person; p.close(); static final String ERRORMSG = Cosa?"; Se il comando è getname, getplace o getyear chiama il metodo da person e stampa cioò che restituisce Catch Comunque alla fine casting necessario per poter chiamare close() Stringa per segnalare errore nel parsing 51 Person remoto: la sequenza delle chiamate chiama getname di PersonStub scrive getname sul socket -esegue getname e restituisce il valore - riceve getname sul socket - chiama getname sul server 52 26

27 Person remoto: la sequenza delle chiamate riceve il valore ottenuto restituisce il valore ottenuto - scrive il risultato sul socket 53 In conclusione Questo rappresenta un semplice esempio di come viene reso possibile la invocazione remota di metodi tramite RMI in effetti, tutto il lavoro di scrivere stub e skeleton non viene richiesto al programmatore la cui difficoltà è quindi nello scrivere ed implementare certe interfacce ed usare certi strumenti Remote Method Invocation la prossima lezione! 54 27

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

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

Organizzazione della lezione. Lezione 10 Interprocess Communication in Java. Gli obiettivi del middleware. Middleware Organizzazione della lezione Lezione 10 Interprocess Communication in Java Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di

Dettagli

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

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

(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

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

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

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

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

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

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

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

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

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

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata. Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto

Dettagli

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

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

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

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

! " # $ % &! ' ( ) (! 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

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

Multithreading/2. Più richieste servite simultaneamente > 1 thread per ogni connessione client (+ 1 thread per accettare nuove richieste).

Multithreading/2. Più richieste servite simultaneamente > 1 thread per ogni connessione client (+ 1 thread per accettare nuove richieste). Multithreading Osservazioni su EchoServer Programmazione TCP in Java EchoServer ed EchoClient Uso del multithreading nella programmazione di rete ChatClient e ChatServer Multithreading/2 Più richieste

Dettagli

Multithreading. Multithreading/2

Multithreading. Multithreading/2 Multithreading Osservazioni su EchoServer Programmazione TCP in Java EchoServer ed EchoClient Uso del multithreading nella programmazione di rete ChatClient e ChatServer Esempio di Web server(?) Multithreading/2

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

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

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

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

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

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

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

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

Organizzazione della lezione. Lezione 16 Remote Method Invocation - 4. Modello Client Server. Le classi di Archivio Client-Server

Organizzazione della lezione. Lezione 16 Remote Method Invocation - 4. Modello Client Server. Le classi di Archivio Client-Server Organizzazione della lezione Lezione 16 Remote Method Invocation - 4 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

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

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

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

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

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

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

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

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

Architetture distribuite Alcuni esempi: Alcuni commenti sul ruolo del registry. Import Interfaccia remota Due metodi remoti

Architetture distribuite Alcuni esempi: Alcuni commenti sul ruolo del registry. Import Interfaccia remota Due metodi remoti Organizzazione della lezione 17. Applicazioni ed Esempi Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Architetture distribuite

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

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

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Sviluppo Web Autore: Alessio Bernardo Revisione: 1 Data: 23/05/13 Titolo: Sviluppo piattaforma e-learning e sviluppo siti web File: Documentazione tecnica Sito:

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

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

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

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

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

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

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

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

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. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario API di Java Istruzione di scrittura Istruzione di lettura 21/03/2011 2 API di Java Java è un linguaggio orientato agli oggetti basato

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

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

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

Dettagli

Parte II: Reti di calcolatori Lezione 10

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

Dettagli

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

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

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

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

Corso di Telematica II

Corso di Telematica II Corso di Laurea Triennale in Ingegneria Informatica ed Ingegneria delle Telecomunicazioni Corso di Telematica II Matricola Nome, Cognome Data Orale... Prova scritta del 21/07/2005 Si implementi, in linguaggio

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

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