Socket in Java. Modelli di comunicazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Socket in Java. Modelli di comunicazione"

Transcript

1 Socket in Java Programmazione in Ambienti Distribuiti A.A Modelli di comunicazione Connesso (stream-oriented) Basato sulla metafora del tubo Permette lo scambio di informazioni tra due partner Garantisce la consegna ordinata ed affidabile di tutti i dati scambiati Richiede ai sistemi operativi dei partner un certo impegno di risorse Non connesso (datagram-oriented) Basati sulla metafora della lettera Possono consentire la comunicazione tra più partner (uno a uno o uno a molti) Non garantiscono nulla sulla consegna Richiede ai sistemi operativi dei partner risorse limitate 2 1

2 Modello connesso (1) La comunicazione richiede tre fasi: 1. Richiesta di connessione Mittente e del destinatario allocano risorse per gestire il flusso di dati 2. Trasferimento di dati Mittente e destinatario possono scambiarsi dati di dimensione arbitraria: il sistema operativo provvede a frammentare le informazioni in pacchetti, in modo trasparente In caso di ricezioni di pacchetti errati o di mancata consegna, viene gestita automaticamente la ritrasmissione 3. Rilascio della connessione Le risorse vengono rilasciate 3 Modello connesso (2) Client Flusso inviato Flusso ricevuto Socket Indirizzo ben noto Rete Socket Server Flusso inviato Flusso ricevuto 4 2

3 Modello non connesso (1) Il mittente deve frammentare esplicitamente i dati in pacchetti La dimensione massima è finita Ogni pacchetto riporta gli estremi di mittente e destinatario I pacchetti possono essere inviati in qualunque momento Non occorre pre-allertare il destinatario Nessuna indicazione automatica circa l avvenuta consegna 5 Modello non connesso (2) Invia messaggio Ricevi messaggio Socket Rete Socket Invia messaggio Ricevi messaggio 6 3

4 Protocolli di trasporto Ogni architettura di rete definisce, a livello 4 (trasporto) del modello ISO/OSI, opportuni protocolli che permetto l instaurarsi di comunicazioni secondo i due diversi modelli Nel caso delle reti IP: TCP (Transport Control Protocol) fornisce servizi orientati alla connessione UDP (User Datagram Protocol) fornisce servizi di trasporto non connessi 7 Socket (1) Astrazione delle terminazioni di una connessione di rete A socket is defined to be the unique identification to or from which information is transmitted in the network (RFC maggio 1971) Concetto nato in ambiente Unix per reti di tipo IP ed esteso a contesti differenti Rete 8 4

5 Socket (2) Un unica interfaccia, molti servizi Non solo TCP/IP ma anche SPX/IPX, IPv6, IrDa, OSI, NetBios, ecc. Un socket è identificato univocamente dall indirizzo a livello rete o Nel caso IP v.4, 4 byte dal tipo di protocollo utilizzato dall indirizzo a livello trasporto o porta, nel caso di TCP e UDP 9 Socket: pro e contro Vantaggi Modello consolidato Indipendente dalla piattaforma Massima flessibilità Svantaggi Minimo livello di astrazione possibile Tutte le funzionalità avanzate (sicurezza, bilanciamento del carico, individuazione dei possibili interlocutori, ) sono a carico del programmatore 10 5

6 Socket in Unix Socket Stream Transport Layer Network Layer Datagram Transport Layer DataLink Layer 11 Socket in Unix Un unica interfaccia (struttura dati, funzioni) per una pluralità di comportamenti Raw socket per connettersi direttamente al protocollo di rete Stream socket per modellare sia il ruolo di client che quello di server nei protocolli connessi Datagram socket per modellare comunicazioni orientate ai messaggi Macchina a stati complessa per definire lo stato di ciascun socket 12 6

7 Socket in Java Un insieme di classi specializzate in compiti distinti Definiti nel package java.net Rispetto al modello originale UNIX, molte semplificazioni ed alcuni limiti Approccio ad oggetti Classi diverse modellano comportamenti diversi Macchina a stati semplificata Non è possibile accedere direttamente al protocollo di rete (non esistono socket di tipo raw ) 13 Classe ServerSocket Rappresenta il punto di ingresso lato rete di un server connesso Accetta richieste di connessione da parte dei client A fronte di una richiesta, crea nel server un oggetto di classe Socket connesso con il client Metodi fondamentali: public ServerSocket(int port) throws IOException public Socket accept() throws IOException public void close() throws IOException 14 7

8 Classe Socket (1) Rappresenta l estremo di una comunicazione di tipo connesso Può assumere tre stati: Non ancora connesso (usato raramente) In connessione Disconnesso Quando è in connessione, permette di inviare e ricevere dati verso l altro estremo Rende disponibili oggetti di tipo InputStream e OutputStream con cui è possibile interagire 15 Classe Socket (2) Metodi fondamentali: public Socket(String host, int port) throws UnknownHostException, IOException, SecurityException; public InputStream getinputstream() throws IOException public OutputStream getoutputstream() throws IOException public void close() throws IOException() 16 8

9 Server minimale class TrivialServer { public static void main(string args[]) { try { ServerSocket ss= new ServerSocket(1234); Socket s= ss.accept(); ss.close(); // verrà accettata un unica connessione BufferedReader br=new BufferedReader( new InputStreamReader(s.getInputStream())); System.out.println(br.readLine()); s.close(); } catch (Exception e) { System.out.println(e); } } } 17 Client minimale class TrivialClient { public static void main(string args[]) { try { Socket s= new Socket( localhost, 1234); PrintWriter out =new PrintWriter( s.getoutputstream(), true); out.println( Hello Socket World ); s.close(); } catch (Exception e) { System.out.println(e); } } } 18 9

10 Scambio di dati (1) I flussi di ingresso e uscita dei socket permettono lo scambio di dati con il partner remoto Le comunicazioni sui due canali sono del tutto indipendenti e possono avvenire in qualsiasi ordine (canale di comunicazione full duplex) Per facilitare l implementazione dei servizi, client e server si accordano (preventivamente) su un protocollo applicativo che definisce le regole che governano tale comunicazione: o Si può parlare contemporaneamente? o Chi parla per primo? o Cosa è lecito dirsi? o 19 Scambio di dati (2) Si opera sui flussi tramite i metodi elementari di InputStream e OutputStream o i loro derivati int read() void write(int b) Tali metodi sono bloccanti: Quando vengono invocati non ritornano fino a che l operazione richiesta non è terminata (o abortita esplicitamente da una terza parte) 20 10

11 Scambio di dati (3) Per semplificare lo scambio di dati, spesso si utilizzano classi filtro specializzate nell aggiungere funzionalità ulteriori Reader/Writer: utilizzo di caratteri Unicode invece che byte come dati elementari BufferedInputSrteam/BufferedOutputStream: inserimento di un buffer per migliorare le prestazioni DataInputStream/DataOutputStream: metodi per la (de)codifica di dati più complessi 21 Struttura di un server (1) Un processo server attende continuamente richieste che possono provenire da una molteplicità di client Ogni richiesta deve essere gestita, restando in attesa di richieste ulteriori Il suo algoritmo è centrato su un ciclo: boolean bcontinue=true; ServerSocket ss= new ServerSocket(port); while (bcontinue) { Socket s= ss.accept(); handlerequest(s); } ss.close(); 22 11

12 Struttura di un server (2) Il metodo handlerequest( ) implementa il protocollo di comunicazione con il client All interno di questo metodo si elaboreranno i dati provenienti dal client e si gestirà opportunamente l interazione Al termine dell interazione, il metodo ritorna e diventa possibile accettare una nuova richiesta da parte di un client differente Cosa succede se, a causa di un malfunzionamento o di un errore di programmazione, il server non riesce a leggere un messaggio atteso da un client? E cosa capita se due client cercano di connettersi contemporaneamente al server? 23 Socket: in profondità (1) Ogni socket connesso è legato ad una porta Altrimenti i protocolli di rete non potrebbero recapitare i dati ad esso destinati Nel caso dei client, la porta spesso è irrilevante All atto della costruzione, viene scelta la prima disponibile Il metodo int getlocalport() permette di conoscerla Ogni calcolatore può avere più di una scheda di rete Normalmente vengono creati socket che dialogano con la scheda primaria Nel costruttore è possibile specificare l indirizzo della scheda da utilizzare e la relativa porta 24 12

13 Socket: in profondità (2) I protocolli di trasporto spesso offrono una molteplicità di opzioni che ne precisano il comportamento Per default, i socket utilizzano i valori base È possibile conoscerli e specificarne di alternativi utilizzando appositi metodi void setkeepalive(boolean on); void setoobinline(boolean on); void setreceivebuffersize(int size); void setreuseaddress(boolean on); void setsendbuffersize(int size); void setsolinger(boolean on, int linger); void setsotimeout(int timeout); void settcpnodelay(boolean on); void settrafficclass(int tc); 25 DatagramSocket (1) Classe che modella un estremo di una conversazione non connessa Offre metodi per l invio e la ricezione di pacchetti singoli Nell implementazione base, basata su UDP, la dimensione massima del pacchetto è 64KByte Il protocollo applicativo deve farsi carico di aspetti di trasporto Suddividere informazioni troppo grosse in pacchetti differenti Numerare i pacchetti Verificarne la consegna 26 13

14 DatagramSocket (2) Metodi fondamentali: public DatagramSocket(int port) throws SocketException, SecurityException; public void send(datagrampacket p) throws IOException; public void receive(datagrampacket p) throws IOException; public void close(); 27 DatagramPacket Modella un singolo pacchetto scambiato all interno di una comunicazione non connessa Metodi fondamentali: public DatagramPacket(byte[ ] buf, int length); public DatagramPacket(byte[ ] buf, int length, InetAddress address, int port); public byte[ ] getdata(); public int getoffset(); public InetAddress getaddress(); public int getport(); 28 14

15 Invio di informazioni int LOCAL_PORT= ; int remote_port= ; InetAddress remote_address= new InetAddres( ); byte[] buf= new byte[64000]; // buf viene riempito socket = new DatagramSocket(LOCAL_PORT); packet = new DatagramPacket(buf, buf.length, remote_address, remote_port); socket.send(packet); // socket.close(); 29 Ricezione di informazioni int LOCAL_PORT= ; int remote_port; byte[] buf= new byte[64000]; InetAddress remote_address; socket = new DatagramSocket(LOCAL_PORT); packet = new DatagramPacket(buf, buf.length); socket.receive(packet); remote_port= packet.getport(); remote_address= packet.getaddress(); //Si accede al contenuto di buf socket.close(); 30 15

16 Multicast È possibile inviare pacchetti datagram a destinazioni multiple SI utilizza la class MulticastSocket, sottoclasse di DatagramSocket L indirizzo del destinatario, specificato nel pacchetto deve essere un indirizzo di gruppo Nel caso UDP/IP, il destinatario avrà un indirizzo compreso tra Occorre registrarsi come membri dell indirizzo di gruppo tramite il metodo joingroup(inetaddress) Occorre anche indicare il raggio (in numero di router attraversati) del gruppo tramite settimetolive(int) 31 16

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

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

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

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

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

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

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

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

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

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

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

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

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

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. 2018-2019 Pietro Frasca Parte II: Reti di calcolatori Lezione 13 (37) Martedì 16-04-2019 1 Programmazione

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

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

(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

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

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

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

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

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

Dettagli

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

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

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

Protocollo UDP. User Data Protocol

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

Dettagli

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

Laboratorio di reti I: Il pacchetto java.net

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

Dettagli

Esercizio Trasferimento File e Multicast

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

Dettagli

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti

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

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti wireless

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

Java Socket LSO 2008

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

Dettagli

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

Networking. Mauro Migliardi Ph. D.

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

Dettagli

Lezione n.3 LIVELLO TRASPORTO

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

Dettagli

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

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

API Socket di Berkeley

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

Dettagli

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

Lo strato di Trasporto

Lo strato di Trasporto Corso di Fondamenti di Reti di Telecomunicazioni LT - ELE / LM-TLC Reti di Telecomunicazioni a.a. 2016-2017 Lo strato di Trasporto Internet è composta da host connessi a reti a commutazione di pacchetto,

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

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

Laboratorio di Sistemi Applicazioni distribuite Java

Laboratorio di Sistemi Applicazioni distribuite Java Un po' di teoria Ricordiamo che un'applicazione distribuita è un'applicazione composta da più programmi (almeno 2) posti in esecuzione su macchine diverse all'interno di una rete di calcolatori e che utilizzano

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

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

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

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

Dettagli

Reti (già Reti di Calcolatori )

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

Dettagli

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

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

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

Dettagli

Parte II: Reti di calcolatori Lezione 20 (44)

Parte II: Reti di calcolatori Lezione 20 (44) 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 20 (44) Venerdì 19-05-2017 1 Il protocollo

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

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

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

Livello di trasporto:

Livello di trasporto: Livello di : Gaia Maselli maselli@di.uniroma1.it Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. All material copyright 1996-2007 J.F Kurose and

Dettagli

Applicazioni web. Parte 5 Socket

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

Dettagli

Il livello Trasporto si occupa di come avviene lo scambio dei dati tra mittente e destinatario, gestisce quindi l invio e la ricezione dei dati.

Il livello Trasporto si occupa di come avviene lo scambio dei dati tra mittente e destinatario, gestisce quindi l invio e la ricezione dei dati. Il livello Trasporto si occupa di come avviene lo scambio dei dati tra mittente e destinatario, gestisce quindi l invio e la ricezione dei dati. Esso stabilisce la modalità di comunicazione; esistono due

Dettagli

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete Reti di calcolatori Protocolli di Trasmissione: Il modello ISO/OSI L architettura TCP/IP Protocolli di trasmissione Un protocollo di

Dettagli

Internet (- working). Le basi.

Internet (- working). Le basi. Internet (- working). Le basi. 1 GABRIELLA PAOLINI (GARR) 18 OTTOBRE 2011 Capire come funziona Internet 2 FACCIAMO UN PASSO INDIETRO Internet È un insieme di reti interconnesse fra di loro su tutto il

Dettagli

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

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

Dettagli

Organizzazione della lezione

Organizzazione della lezione Laboratorio Reti di Calcolatori (A.A. 2008-2009) Delfina Malandrino delmal@dia.unisa.it http://www.dia.unisa.it/professori/delmal/ Organizzazione della lezione 2 Struttura del corso Alcune informazioni

Dettagli

Informatica. Prof. A. Longheu. Input e Output

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

Dettagli

Reti 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

ESERCITAZIONI DI LABORATORIO 1

ESERCITAZIONI DI LABORATORIO 1 ESERCITAZIONI DI LABORATORIO 1 JAVA SOCKET Java socket: caratteristiche della comunicazione Si è detto che un socket è come una porta di comunicazione e tutto ciò che è in grado di comunicare tramite il

Dettagli

Internet Protocol Cenni introduttivi

Internet Protocol Cenni introduttivi Politecnico di Milano Sede di Cremona A.A. 2013/2014 Corso di RETI DI COMUNICAZIONE ED INTERNET Modulo 1 Internet Protocol Cenni introduttivi Antonio Corghi I protocolli di Internet (1) q L Internet Protocol

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

Basic Network Tutorial

Basic Network Tutorial java.net net.* Basic Network Tutorial aprile 2005 Agenda Java e network programming Low-level programming, network programming e distributed computing UDP e TCP Client e Server Applicazioni Bibliografia

Dettagli

Il livello trasporto: Introduzione e protocollo UDP

Il livello trasporto: Introduzione e protocollo UDP Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori a.a. 2009/10 Roberto Canonico (roberto.canonico@unina.it) Antonio Pescapè (pescape@unina.it) Il livello trasporto: Introduzione e

Dettagli

14/12/2018 Informatici e di Telecomunicazioni

14/12/2018 Informatici e di Telecomunicazioni Informatici e di Telecomunicazioni 14 dicembre 2018 Parte I Classe V A INF ISIS E.Fermi Prof. Federico Santolini 1 (c) Primitive del servizio di trasporto (1/3) Premessa E utile ribadire che il livello

Dettagli

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche Mariarosaria Napolitano Architettura TCP/IP Corso di: Laboratorio di tecnologie informatiche e telematiche Contesto e Prerequisiti Contesto E' rivolto agli studenti del V anno degli Istituti Tecnici Industriali

Dettagli

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

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

Dettagli

3: Architettura TCP/IP

3: Architettura TCP/IP 1 1 3: Architettura TCP/IP Architettura di rete e Modello TCP/IP 2 Il modello TCP/IP nasce da un progetto del Dipartimento della Difesa USA per la realizzazione di una rete di trasmissione solida per le

Dettagli

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013

Dettagli

Programmazione di Rete A.A. 2010/2011

Programmazione di Rete A.A. 2010/2011 Programmazione di Rete A.A. 2010/2011 Massimo Merro Università degli Studi di Verona 7 Marzo 2011 Massimo Merro Univ. Verona Programmazione di Rete 1 / 247 I Socket Nei sistemi distribuiti i dati vengono

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

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

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

Dettagli

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

Lezione n.6 LPR- Informatica Applicata

Lezione n.6 LPR- Informatica Applicata Università degli Studi di Pisa Lezione n.6 LPR- Informatica Applicata Multicast 20/3/2006 Laura Ricci Multicast Laura Ricci 1 Riassunto della presentazione Comunicazione tra gruppi di processi Gruppi di

Dettagli

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

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

Dettagli

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

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 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello

Dettagli

L interfaccia Socket

L interfaccia Socket L interfaccia Socket Che cos è E una API per la suite TCP/IP una API (Application Program Interface) è il set di funzioni che i programmatori usano per sviluppare applicazioni in un determinato ambiente.

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

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

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

Lo strato di applicazione in Internet

Lo strato di applicazione in Internet Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio Java: servizio connection-oriented 1 of 21 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione

Dettagli

ISO OSI. International Standard Organization Open System Interconnection

ISO OSI. International Standard Organization Open System Interconnection ISO OSI International Standard Organization Open System Interconnection Open System Interconnection Verso gli anni '80 l'iso promuove un'azione volta alla definizione di un modello di riferimento a strati

Dettagli

Sistemi Operativi e Reti 1

Sistemi Operativi e Reti 1 Sistemi Operativi e Reti 1 Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2014/15 1 cba 2015 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo

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

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

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Protocolli di trasmissione 2 Introduzione Un protocollo di trasmissione è un insieme di regole

Dettagli

Introduzione. Java. G. Prencipe prencipe@di.unipi.it. accesso alla rete -- TCP

Introduzione. Java. G. Prencipe prencipe@di.unipi.it. accesso alla rete -- TCP Java accesso alla rete -- TCP G. Prencipe prencipe@di.unipi.it Introduzione Storicamente, programmare su un sistema di macchine distribuite è sempre stato complesso Il programmatore doveva conoscere diversi

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010 Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori l Introduzione ai Thread in Java A.A. 2009/2010 1 Thread Un thread è un flusso sequenziale di esecuzione di istruzioni all interno

Dettagli