Basic Network Tutorial
|
|
|
- Abele Gioia
- 10 anni fa
- Visualizzazioni
Transcript
1 java.net net.* Basic Network Tutorial aprile 2005
2 Agenda Java e network programming Low-level programming, network programming e distributed computing UDP e TCP Client e Server Applicazioni Bibliografia Conclusioni
3 Java
4 Protocol stack Applicazione (HTTP, FTP...) Trasporto (UDP, TCP, RTP) Rete (IP) Hardware Applicazione (HTTP, FTP...) Trasporto (UDP, TCP, RTP) Rete (IP) Hardware
5 Protocolli di rete E' importante conoscere i diversi protocolli a disposizione: caratteristiche e finalità, i limiti, le potenzialità, l'affidabilità, la robustezza, l'overhead introdotto, la sicurezza, i requisiti di memoria e calcolo La scelta del protocollo giusto deve essere fatta in base a: banda disponibile affidabilità della rete (wired/wireless) volume dei dati scambiati...
6 Tre livelli di sviluppo L'evoluzione dei protocolli e delle infrastrutture di rete ha portato idealmente a tre livelli distinti di programmazione e sviluppo networkoriented: Low-level Network Programming Network Programming Distributed Computing
7 Low-level network programming Per low-level network programming intendiamo la possibilità di scambiare dati primitivi e complessi attraverso stream su trasporto TCP e UDP. Attraverso le classi Socket e ServerSocket è possibile gestire la comunicazione client/server per l'invio di byte[], tipi base, oggetti serializzati La logica di comunicazione è responsabilità del programmatore che dovrà prevedere opportuni codici di controllo
8 Network Programming Per network programming intendiamo l'utilizzo di uno o più protocolli applicativi, che si occupano di gestire la logica di comunicazione tra client e server A seconda del protocollo scelto, il programmatore dispone di strumenti più o meno complessi che nascondono i dettagli implementativi della specifica Esempi di protocolli applicativi: Telnet, FTP, HTTP, SSH, NFS, NTP...
9 Distributed Computing Il distributed computing rappresenta la possibilità di delocalizzare l'elaborazione sui nodi di una rete in modo trasparente per il programmatore ed il codice applicativo Attraverso opportuni meccanisimi di binding, lookup e serializzazione di oggetti, l'invocazione di metodi e l'accesso a funzioni remote avviene come se risorse fossero locali: la presenza della rete è totalmente mascherata dalle librerie applicative
10 Distributed Computing Esempi di distributed computing sono: Java RMI: permette l'invocazione remota di metodi in maniera trasparente per il programmatore. Oggetti locali e remoti sono trattati allo stesso modo CORBA: permette l'interoperabilità tra componenti software scritti in linguaggi diversi Web Service: usano l'invocazione remota di metodi attraverso scambio di documenti XML su protocollo HTTP XML-RPC SOAP
11 Stream model Il sistema di I/O di Java è basato sul modello a stream: opportuni oggetti permettono di gestire i flussi di byte in ingresso e in uscita Il modello a stream permette una gestione omogenea delle sorgenti di dati, a prescindere dal supporto fisico (file, rete, porta seriale, link Bluetooth...) Attraverso un insieme componibile di filtri (decorator) e adattatori è possibile elaborare i byte in transito
12 Input/Output Stream InputStream: Gestisce i flussi di byte in ingresso Fornisce facility di buffering elementari OutputStream: Gestisce i flussi di byte in uscita (con buffering) DataSource Applicazione Input/Output Stream Filter 1 Filter 2 Filter n
13 Data Stream I tipi base quali numeri interi, numeri in virgola mobile, valori logici e stringhe (ASCII, Unicode, UTF) sono codificati con più byte (non sempre indipendenti dalla piattaforma) Al fine di rendere la trasmissione di tali dati trasparente rispetto alla effettiva codifica (si pensi alla variabilità del numero di bit di un valore numerico intero) si utilizzano i DataStream, che offrono i metodi per leggere/scrivere int, short, long, float, double, String...
14 Gestione caratteri: reader L'introduzione di specifiche quali Unicode (1.0 e 2.0) e UTF-8 ha portato alla necessità di trattare in maniera dedicata il trasferimento di stream di caratteri: non è garantita, infatti, la corrispondenza classica 1byte == 1char! :-( Reader e Writer sono gli strumenti utilizzati da Java per accedere a flussi di caratteri indipendentemente dalla codifica utilizzata
15 Buffering Alcuni protocolli si basano su scambio sequenze di stringhe separate da CR+LF: il protocollo HTTP, ad esempio, descrivere le intestazioni (header) delle HTTP Request e Response La gestione dei flussi per righe può essere fatta agevolmente attraverso l'uso di classi quali il BufferedReader, che offre metodi per la lettura line by line
16 Low-level network programming Introduciamo ora i concetti base per lo sviluppo di applicazioni che utilizzano i protocolli di comunicazione a basso livello: IP UDP (Datagram Packet e Datagram Socket) TCP (Socket e ServerSocket)
17 IP La libreria standard di Java offre classi per: Selezione di una specifica interfaccia di rete sulla macchina host Recuperare informazioni su un indirizzo Internet (IPv4 e IPv6) InetAddress: è la classe che incapsula un indirizzo IP. E' utilizzata dalle classi per la gestione dei protocolli UDP e TCP.
18 InetAdress Metodi principali dell'interfaccia pubblica: InetAddress.getByName(String host) InetAddress.getAllByName(String host) String gethostname() byte[] getaddress() String gethostaddress()
19 nslookup... import java.net.*; public class NSLookup { } public static void main(string[] args) { try { String addr = InetAddress.getByName(args[0]).getHostAddress(); System.out.println("Host " + args[0] + " has IP: " + addr); } catch(exception e) { System.out.println("Error: " + args[0]); } }
20 UDP UDP: User Datagram Protocol Permette di inviare/ricevere pacchetti di byte (datagram) ad/da un host su una porta nota E' un protocollo connection-less, non orientato alla connessione (in senso stretto); non è garantito l'ordine di arrivo dei pacchetti: è compito dell'applicazione marcare i dati per ricostruirne la sequenza Non offre meccanismi di controllo sul corretto invio dei dati: lo strato applicativo deve gestire tale controllo Protocolli applicativi basati su UDP: DNS, NFS...
21 Datagram Java offre alcune classi per la ricezione e l'invio di pacchetti UDP: Datagram Packet: è un classe double-face usato come contenitore per l'invio e la ricezione dei pacchetti Datagram Socket: è la classe responsabile dell'invio dei Datagram Packet ad un server remoto e l'ascolto su una porta UDP locale
22 Datagram Packet Pacchetti in uscita Sono costruiti a partire da un byte[] contenente i dati da inviare: DatagramPacket(byte[] buf, int length, InetAddress address, int port) Pacchetti in ingresso Sono costruiti a partire da un byte[] usato come buffer per i dati in arrivo: DatagramPacket(byte[] buf, int length)
23 Datagram Packet Metodi principali dell'interfaccia pubblica: byte[] getdata() InetAddress getaddress() int getlength() int getport()
24 Datagram Socket E' responsabile dell'invio e della ricezione dei Datagram Packet. Metodi principali dell'interfaccia pubblica: DatagramSocket(int port) int getlocalport() void send(datagrampacket p) void receive(datagrampacket p) E' possibile assegnare staticamente un Datagram Socket ad un host remoto (ferme restando tutte le caratteristiche di UDP)
25 TCP/IP Il TCP/IP è un protocollo a livello di trasporto: Orientato alla connessione: si stabilisce un canale virtuale tra client e server che rimane attivo sino alla chiusura della connessione Trasparente: l'implementazione si occupa di assemblare la corretta sequenza dei pacchetti in arrivo Affidabile: in caso di pacchetti persi o corrotti, lo stack si occupa di chiedere la ritrasmissione dei pacchetti mancanti
26 Socket La classe Socket offre i meccanismi base per aprire una connessione TCP verso un server remoto Attraverso il modello basato su stream è possibile ricevere e inviare dati in modo trasparente rispetto alla rete fisica utilizzata e ai meccanismi di connessione di quest'ultima
27 Socket Metodi principali dell'interfaccia pubblica: Socket(String host, int port) InputStream getinputstream() OutputStream getoutputstream() int getport() int getlocalport() InetAddress getinetaddress() InetAddress getlocalinetaddress() void close()
28 ServerSocket La classe ServerSocket è utilizzata creare ed assegnare server TCP ad una porta nota Il modello di comunicazione è simmetrico: per ogni connessione, la classe ServerSocket restituisce una istanza di Socket, i cui input e output stream forniscono i canali di comunicazione verso il client remoto
29 ServerSocket Metodi principali dell'interfaccia pubblica: ServerSocket(int port) Socket accept(); int getlocalport() InetAddress getinetaddress() void close()
30 Network Games
31 Network games :-) Il miglior modo per acquisire praticità con lo sviluppo di applicazioni network-oriented e con i protocolli più comuni è... giocarci! :-) Sistemi asincroni, multithreading, sicurezza, accesso concorrente ai dati sono problematiche comuni a molte applicazioni di rete...
32 Echo Vogliamo scrivere una semplicissima applicazione che riceve una stringa attraverso Socket e la rimanda indietro. Client Apre un socket verso il server Invia e riceve una stringa Server Apre un serversocket e accetta una connessione Restituisce le stringhe ricevute
33 Echo server import java.io.*; import java.net.*; public class EchoServer { public static void main(string[] args) throws Exception { ServerSocket serversocket = new ServerSocket(8899); Socket socket = serversocket.accept(); Reader reader = new InputStreamReader(socket.getInputStream()); BufferedReader buffer = new BufferedReader(reader); PrintStream ps = new PrintStream(socket.getOutputStream()); String read = ""; while ((read = buffer.readline())!= null) { System.out.println("Ricevuto: " + read); ps.println(read); } } }
34 Echo client import java.io.*; import java.net.*; import java.util.date; public class EchoClient { public static void main(string[] args) throws Exception { Socket clientsocket = new Socket(" ", 8899); Reader reader = new InputStreamReader(clientSocket.getInputStream()); BufferedReader buffer = new BufferedReader(reader); PrintStream ps = new PrintStream(clientSocket.getOutputStream()); while (true) { ps.println(new Date(System.currentTimeMillis())); System.out.println("Tornato indietro: " + buffer.readline()); Thread.sleep(200); } } }
35 Esplorazione di un protocollo I Socket costituiscono un ottimo strumento didattico per imparare a gestire protocolli di complessità crescente In un modello client/server è possibile: Creare un server fittizio per intercettare e tracciare il formato delle chiamate effettuate da un client Create un client fittizio che, a fronte di una richiesta elementare ad un server reale, intercetti e descriva nel dettaglio il formato dei dati restituiti dal server
36 Cosa manda un browser? Si supponga di voler esaminare il formato di una richiesta HTTP inviata da un browser al server web Sarà necessario: Creare un serversocket (verosimilmente sulla porta 80) Leggere i dati inviati dal client riga per riga
37 HTTP Request sniffer... import java.io.*; import java.net.*; public class HTTPRequestSniffer { public static void main(string[] args) { try { ServerSocket serversocket = new ServerSocket(80); Socket clientsocket = serversocket.accept(); InputStream input = clientsocket.getinputstream(); BufferedReader buffer = new BufferedReader(new InputStreamReader(input)); String read = ""; int line = 0; while ((read = buffer.readline())!= null) { System.out.println(Integer.toString(line++) + " " + read); } } catch(exception e) { e.printstacktrace(); } } }
38 HTTP Request: Mozilla GET / HTTP/1.1 Host: localhost User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-us; rv:1.0.1) Gecko/ Netscape/7.0 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,te xt/plain;q=0.8,video/xmng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1 Accept-Language: en-us, en;q=0.50 Accept-Encoding: gzip, deflate, compress;q=0.9 Accept-Charset: ISO , utf-8;q=0.66, *;q=0.66 Keep-Alive: 300 Connection: keep-alive
39 HTTP Request: Internet Explorer GET / HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* Accept-Language: it Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0;.NET CLR ) Host: localhost Connection: Keep-Alive
40 Cosa invia un server web? Conoscendo il formato di una richiesta elementare inviata da un browser web, possiamo preparare un client fittizio con cui tracciare la risposta restituita dal server Sarà necessario: Create un client socket verso un server web attivo Inviare la richiesta minima (GET / HTTP/1.x) Leggere i dati inviati dal server riga per riga
41 HTTP Response sniffer... import java.io.*; import java.net.*; public class HTTPResponseSniffer { public static void main(string[] args) throws Exception { Socket clientsocket = new Socket("java.sun.com", 80); InputStream input = clientsocket.getinputstream(); BufferedReader buffer = new BufferedReader(new InputStreamReader(input)); PrintStream ps = new PrintStream(clientSocket.getOutputStream()); ps.println("get / HTTP/1.0\n\n"); String read = ""; int line = 0; while ((read = buffer.readline())!= null) { System.out.println(Integer.toString(line++) + " " + read); } } }
42 HTTP Response di java.sun.com HTTP/ OK Server: Netscape-Enterprise/6.0 Date: Tue, 18 May :53:33 GMT Content-type: text/html;charset=iso Set-cookie: JSESSIONID=java.sun.com-987f%253A40aa074a% 253A391e72d077d4b9a;path=/;expires=Tue, 18-May :23:31 GMT Connection: close <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>java Technology</title> <meta name="keywords" content="java, platform" /> [...]
43 Multithreading Rispetto ad altri linguaggi (Pascal, C/C++...), Java nasce con la multiprogrammazione in mente La possibilità di gestire più flussi di esecuzione concorrenti in maniera nativa nel linguaggio è fondamentale per facilitare lo sviluppo di applicazioni network-oriented Il server deve gestire in modo concorrente più connessioni, delegando a ciascun thread la gestione di un client
44 Multithreading L'esempio di Echo server precedentemente illustrato... funziona una sola volta e con un solo client! E' necessario incapsulare la gestione di una singola connessione all'interno di un Thread separato Echo Server Connection 1 Connection 1 Connection 1
45 Multithreading Un Thread gestisce la connessione: private static class Connection extends Thread { private Socket clientsocket; public Connection(Socket socket) { this.clientsocket = socket; start(); } public void run() { try { // CODICE DI LETTURA:.. } catch(exception e) { e.printstacktrace(); } } }
46 Multithreading Il server istanzia un Thread per ogni connessione ricevuta: public static void main(string[] args) throws Exception { } ServerSocket serversocket = new ServerSocket(8899); while (true) { } Socket clientsocket = serversocket.accept(); new Connection(clientSocket);
47 Protocolli applicativi L'API Java offre classi per la gestione di protocolli a livello applicativo (ad esempio HTTP), che permettono di sviluppare in modo semplice e rapido potenti applicazioni network oriented Il network programming permette di trascurare tutti i dettagli del protocollo sottostante per concentrarsi solamente sullo scambio dei contenuti
48 URL e URLConnection La classe URL rappresenta un Uniform Resource Locator, cioè un riferimento formale ad una risorsa reperibile su Internet La classe URLConnection rappresenta la connessione al servizio su cui risiede la risorsa individuata da un URL Attenzione: URL: non più indirizzo IP! URLConnection: non più Socket!
49 HttpURLConnection E' la classe che incapsula la gestione di una connessione HTTP ad un server web Nasconde tutti i dettagli del protocollo, gestendo l'invio degli header, la codifica dei dati binari e la notifica degli errori di elaborazione Si ottiene a partire da una URL valida
50 HttpURLConnection Metodi principali dell'interfaccia pubblica: URL.openConnection() Object getcontent() int getcontentlength() String getheaderfield(string name) String getrequestproperty(string name) InputStream getinputstream() OutputStream getoutputstream()
51 Domande?
52 Bibliografia Java Network Programming E. Rusty Harold O'Reilly 2000 ISBN: XML-RPC F. Caboni e S. Sanna Gruppo Utenti Linux Cagliari LinuxDay
53 Conclusioni Java offre una potente libreria per la gestione delle connessioni in rete Qualsiasi sia la versione utilizzata (Enterprise, Standard, Micro), vi è sempre la possibilità di connettersi ad un server remoto per inviare e ricevere dati java.net.* è una buona palestra per prendere dimestichezza con i più diffusi protocolli di comunicazione!
54 Grazie... :-) Copyright (c) CRS4 Scritto da Stefano Sanna è garantito il permesso di copiare, distribuire e/o modificare questo documento seguendo i termini della Licenza per Documentazione Libera GNU, Versione 1.1 o ogni versione successiva pubblicata dalla Free Software Foundation. Una copia della licenza in lingua italiana è disponibile presso:
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
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
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à
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
Applicazioni distribuite
Applicazioni distribuite Maurizio Cozzetto 1 agosto 2009 Un pò di teoria Ricordiamo che un'applicazione distribuita è un'applicazione composta da più programmi (almeno 2) posti in esecuzione su macchine
appunti delle lezioni Architetture client/server: applicazioni client
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente
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
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client
Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un
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
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
(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
Introduzione alle applicazioni di rete
Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza
Altri tipi di connessione
Altri tipi di connessione Francesca Martelli [email protected] Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo
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
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
Architetture Web Protocolli di Comunicazione
Architetture Web Protocolli di Comunicazione Alessandro Martinelli [email protected] 10 Maggio 2011 Architetture Web Architetture Web Protocolli di Comunicazione Il Client Side Il Server Side
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 [email protected] 1 Datagrammi Le applicazioni che
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 [email protected] 1 Datagrammi Le applicazioni che
Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: [email protected], SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell
Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: [email protected], SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e
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
Corsi di Reti di Calcolatori (Docente Luca Becchetti)
Corsi di Reti di Calcolatori (Docente Luca Becchetti) NOT : le soluzioni proposte sono volutamente sintetiche. Lo studente dovrebbe fare uno sforzo per risolvere i quesiti in modo autonomo, espandendo
Laboratorio di reti I: Il pacchetto java.net
Laboratorio di reti I: Il pacchetto java.net Stefano Brocchi [email protected] 5 novembre, 2008 Stefano Brocchi Laboratorio di reti I: Il pacchetto java.net 5 novembre, 2008 1 / 43 Concetti di base
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
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 [email protected] Orario di ricevimento: mercoledì
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
Reti di Telecomunicazione Lezione 8
Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica [email protected] Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato
Protocolli applicativi: FTP
Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione
Reti di Telecomunicazione Lezione 6
Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica [email protected] Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server
Programmazione dei socket con TCP #2
I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket
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
Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)
Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione
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 [email protected] Protocolli Internet I computer
2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.
ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected]
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected] POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.
ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31
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
Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie
Corso di Reti di Calcolatori. java.net.url
Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (2 a parte) [email protected] 1 java.net.url URL (String spec) crea un oggetto URL
Dal protocollo IP ai livelli superiori
Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono
HTTP adaptation layer per generico protocollo di scambio dati
HTTP adaptation layer per generico protocollo di scambio dati Sandro Cavalieri Foschini 101786 Emanuele Richiardone 101790 Programmazione in Ambienti Distribuiti I - 01FQT prof. Antonio Lioy A.A. 2002-2003
Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni
Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)
Transmission Control Protocol
Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione
UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing
a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta [email protected]
appunti delle lezioni Architetture client/server: applicazioni server
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante
PROTOCOLLI APPLICATIVI PER INTERNET
PROTOCOLLI APPLICATIVI PER INTERNET IC3N 2000 N. 5 La famiglia dei protocolli TCP/IP Applicazioni e-mail,ftp,ssh,www TCP UDP ICMP IP ARP RARP IEEE 802-Ethernet-X25-Aloha ecc. Collegamento fisico 6 1 Protocolli
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
PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )
PARTE 1 richiami SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 1 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application
Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1
Siti web centrati sui dati (Data-centric web applications)
Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected]
Cenni di programmazione distribuita in C++ Mauro Piccolo [email protected] Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
Applicazioni web centrati sui dati (Data-centric web applications)
Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento
Architetture Applicative Il Web
Architetture Applicative Il Web Alessandro Martinelli [email protected] 18 Marzo 2014 Architetture Architetture Web L Architettura Client-Server HTTP Protocolli di Comunicazione Fondamenti
CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci
CORSO DI RETI SSIS Lezione n.2. 2 Novembre 2005 Laura Ricci IL DOMAIN NAME SYSTEM (DNS) Indirizzi IP poco adatti per essere memorizzati da utenti umani è prevista la possibiltà di associare nomi simbolici
Contenuti. Applicazioni di rete e protocolli applicativi
Contenuti Architettura di Internet Principi di interconnessione e trasmissione World Wide Web Posta elettronica Motori di ricerca Tecnologie delle reti di calcolatori Servizi Internet (come funzionano
12.5 UDP (User Datagram Protocol)
CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che
Reti e Sistemi per l Automazione MODBUS. Stefano Panzieri Modbus - 1
MODBUS Stefano Panzieri Modbus - 1 La Storia Diventa uno STANDARD nel 1979 Nato come protocollo di comunicazione SERIALE si è successivamente adattato alle specifiche TCP/IP Permette una comunicazione
Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete
IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,
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:
Standard di comunicazione
Standard di comunicazione Organizzato a livelli per ridurne la complessità e aumentarne la flessibilità il numero dei livelli e le loro funzionalità dipendono dal tipo di rete ogni livello formalizza un
TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP
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
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
OSOR. Applicazioni di Rete
OSOR Applicazioni di Rete 1 Client-Server in Sistemi Distribuiti Host A Host B Client TCP/UDP IP Network Interface Internet Risultati Server TCP/UDP IP Network Interface Richiesta Applicazioni di Rete
Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00
Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 200, ore 1.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:
Lo scenario: la definizione di Internet
1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)
Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server
Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette
Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:
Reti di Calcolatori una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette: condivisione di risorse (dati aziendali, stampanti, ) maggiore
Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento
I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere
FTP. Appunti a cura del prof. ing. Mario Catalano
FTP Appunti a cura del prof. ing. Mario Catalano Il protocollo FTP 1/2 Attraverso il protocollo FTP (File Transfer Protocol) è possibile trasferire uno o più files di qualsiasi tipo tra due macchine Tale
Le Reti Informatiche
Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it [email protected] 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo
TCP/IP: INDIRIZZI IP SIMBOLICI
TCP/IP: INDIRIZZI IP SIMBOLICI DOMAIN NAME SYSTEM: ESEMPIO www.unical.it 160.97.4.100 100 host 160.97.29.5 dominio i di II livelloll dominio di (organizzazione: università) I livello (nazione) www.deis.unical.it
Reti di Telecomunicazione Lezione 7
Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica [email protected] Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione
Il Protocollo HTTP e la programmazione di estensioni Web
Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);
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
Introduzione. Java. G. Prencipe [email protected]. accesso alla rete -- TCP
Java accesso alla rete -- TCP G. Prencipe [email protected] Introduzione Storicamente, programmare su un sistema di macchine distribuite è sempre stato complesso Il programmatore doveva conoscere diversi
Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito
Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito Punto di vista fisico: insieme di hardware, collegamenti, e protocolli che permettono la comunicazione tra macchine remote
Sicurezza delle applicazioni web: protocollo HTTP
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Sicurezza delle applicazioni web: protocollo HTTP Alessandro Reina Aristide Fattori
Reti di Calcolatori. Il software
Reti di Calcolatori Il software Lo Stack Protocollare Application: supporta le applicazioni che usano la rete; Transport: trasferimento dati tra host; Network: instradamento (routing) di datagram dalla
Protocolli di Comunicazione
Protocolli di Comunicazione La rete Internet si è sviluppata al di fuori dal modello ISO-OSI e presenta una struttura solo parzialmente aderente al modello OSI. L'architettura di rete Internet Protocol
Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).
Topologia delle reti Una RETE DI COMPUTER è costituita da un insieme di elaboratori (NODI) interconnessi tra loro tramite cavi (o sostituti dei cavi come le connessioni wireless). Rete Point-to-Point:
Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella
Corso di Sistemi di Elaborazione delle informazioni Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella Una definizione di Rete Una moderna rete di calcolatori può essere definita come:
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
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
Elementi sull uso dei firewall
Laboratorio di Reti di Calcolatori Elementi sull uso dei firewall Carlo Mastroianni Firewall Un firewall è una combinazione di hardware e software che protegge una sottorete dal resto di Internet Il firewall
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
Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls
Università degli Studi di Pisa Dipartimento di Informatica NAT & Firewalls 1 NAT(NETWORK ADDRESS TRANSLATION) MOTIVAZIONI NAT(Network Address Translation) = Tecnica di filtraggio di pacchetti IP con sostituzione
Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...
Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad
SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )
PARTE 2 SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 2 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application
Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet
Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo
Oreste Signore, <[email protected]> Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa
http://www.w3c.it/education/2012/upra/basicinternet/#(1) 1 of 16 Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, 1-56124 Pisa Master in Comunicazione
Le variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
