Programmazione dei socket con TCP #2



Documenti analoghi
Telematica II 12. Esercitazione/Laboratorio 4

Introduzione alle applicazioni di rete

Telematica II 17. Esercitazione/Laboratorio 6

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 8

Parte II: Reti di calcolatori Lezione 10

Applicazioni distribuite

Esercizio 2. Client e server comunicano attraverso socket TCP

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Programmare con le Socket

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

appunti delle lezioni Architetture client/server: applicazioni server

Socket & RMI Ingegneria del Software - San Pietro

Architettura Client-Server

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Dal protocollo IP ai livelli superiori

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Programmare con le Socket TCP

Lezione 1 Introduzione

Transmission Control Protocol

appunti delle lezioni Architetture client/server: applicazioni client

Altri tipi di connessione

Inizializzazione degli Host. BOOTP e DHCP

P2-11: BOOTP e DHCP (Capitolo 23)

Informatica per la comunicazione" - lezione 8 -

Programmare con le Socket TCP in java. 2: Application Layer 1

Cenni di programmazione distribuita in C++ Mauro Piccolo

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Esercitazione [6] Client/Server con Socket

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

HTTP adaptation layer per generico protocollo di scambio dati

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert)

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

Client - Server. Client Web: il BROWSER

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

Il Protocollo HTTP e la programmazione di estensioni Web

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Le Reti Informatiche

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Esercitazione [8] Pipe e FIFO

4 - Il livello di trasporto

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Approfondimento di Marco Mulas

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Pronto Esecuzione Attesa Terminazione

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

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Programmazione Server Side e Database in rete

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

2.1 Configurare il Firewall di Windows

Reti di Calcolatori:

Server-side Programming: Java servlets Parte II

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_ Stefano Millozzi

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Studi di Settore. Nota Operativa 22/4/2013

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Applicazioni web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications)

Modulo 1: Posta elettronica

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Controllo Winsock di Visual Basic

Reti di Calcolatori. Il software

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 1

Sistemi Operativi (modulo di Informatica II)

I/O su Socket TCP: read()

Protocolli applicativi: FTP

Programma di configurazione di reti NetWare

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Corso di recupero di sistemi Lezione 8

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Socket TCP. seconda parte

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

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

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

FTP. Appunti a cura del prof. ing. Mario Catalano

Elementi sull uso dei firewall

Configurazione client di posta elettronica per il nuovo servizio . Parametri per la Configurazione dei client di posta elettronica

il trasferimento di file

Zeroshell: VPN Lan-to-Lan. Il sistema operativo multifunzionale. creato da

Transcript:

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 API kernel space Corso di Laurea in Ingegneria Informatica A.A. 2009-2010 2 Semestre hardware Prof. Giovanni Pascoschi 2 Creazione di un UtilizzodeinumeridiportaTCP Le applicazioni (client & ) devono specificare: associazione Numero di porta locale Indirizzo host locale Numero di porta remoto Indirizzo host remoto Protocollo di Trasporto Opzioni aggiuntive Semiassociazione Semiassociazione i numeri di porta sono usati per identificare entita diverse su un host i numeri di porta possono essere well-known (porte 0-1023) dinamiche o private (porte 1024-65535) i servizi/daemons usano di solito le porte well-known ogni client puo identificare il o i servizi HTTP = 80, FTP = 21, Telnet = 23,... il file presente nel percorso windows/system32/drivers/etc/services contiene le porte well-known i client di solito usano porte dinamiche che sono assegnate dal kernel a run-time NTP daemon port 7777 Web service port 80 3 4

Programmazione dei con TCP #1 Programmazione dei con TCP #2 TCP trasferimento affidabile di byte da un processo ad un altro residente tipicamente su un altro host applicativo di S.O. processo TCP con buffers, variabili host o internet processo TCP con buffers, variabili host o applicativo di S.O. 1. il client deve contattare il il processo deve essere gia nello stato running 2. il deve aver creato il che accettera i contatti dal client 3. il client contatta il mediante: la creazione di un TCP locale specificando l indirizzo, il numero di porta del processo 4. dopo aver creato il, il client instaura una al TCP 5. in generale, quando e contattato da un client, il TCP crea un nuovo per comunicare con il client permette la con client multipli il numero di porta servira per distinguere i vari client N.B.: nei primi esempi useremo una client/ 1:1 5 6 Interazione con client/ TCP Esercitazione su TCP lato #1 Server (hostid) creazione di un, port=7777, per richieste entranti: servsocket=socket( ) in attesa di una richiesta di : = servsocket.accept( ); richiesta di lettura from invia risposta al chiude il TCP setup della Client creazione di un, all hostid, port=7777 = Socket( ) invia una richiesta usando legge risposta dal chiude il Per utilizzare le classi JAVA utili alla gestione dei : import java.net.*; Server TCP con un unico thread (serve un solo client per volta) 1. Creare un ServerSocket indicando il numero di porta 2. Mettersi in attesa di da parte del client; a stabilita si ottiene un oggetto di classe Socket () 3. Ottenere gli stream di input e output associati al Socket 4. Comunicare con il client usando gli stream di I/O per leggere (=ricevere) e scrivere (=inviare) dati 5. Chiudere il Socket (eventualmente tornare al passo 2 per servire un altro client) 6. Chiudere il ServerSocket 7 8

Esercitazione su TCP lato #2 Esercitazione 3 TCP Echo Server richiesta di Viene illustrato un esercizio TCP Echo Server sulla gestione dei TCP sul (esercitazione 7FS) client internet Socket stabilita 9 10 Esercitazione su TCP lato client Esercitazione 4 TCP Echo Client Client TCP 1. Connettersi creando un Socket () e specificando indirizzo del e porta TCP del servizio 2. Ottenere gli stream di input e output associati al Socket (come per il ) 3. Comunicare con il usando gli stream di I/O per scrivere (=inviare) e leggere (=ricevere) dati 4. Chiudere il Socket Viene illustrato un esercizio TCP Echo Client sulla gestione dei TCP sul client (esercitazione 8FS) 11 12

Esercitazione su TCP altra versione Esercitazione 5 TCP Server generico Server TCP generico / EchoServer2 La classe astratta TCPServer implementa un generico TCP, svolgendo le funzionalità comuni di gestione delle connessioni Un metodo astratto (chiamato processrequest nell'esempio) isola la logica di livello applicativo Ridefinendo questo metodo in una classe derivata si implementa uno specifico protocollo applicativo su TCP Una soluzione analoga è adottata per la creazione di Java servlet, applicazioni Java (lato ) eseguite per generare pagine Web dinamiche Occorrono sia un web per gestire la comunicazione HTTP (ad esempio Apache Httpd ) sia un Java servlet container per eseguire le servlet (ad esempio Apache Tomcat) Viene illustrato un esercizio TCP Server generico sulla gestione dei TCP sul (esercitazione BONUSFS) 13 14 Riepilogo della lezione Fine della lezione Esercitazione/Laboratorio 3 Gestione TCP su & client Esercitazioni sulla gestione TCP lato & client Analisi esercizi assegnati n. 4, 5, 6 e 7 Domande? 15 16

Esercizio n.9 Realizzare un applicazione client/ (1:1) che implementa il seguente servizio: 1. Invio da parte del client di una frase testuale, di un campo chiave Cesare di tipo intero e di un flag booleano tipo (0 per codifica chiaro CodCesare; 1 per codifica CodCesare chiaro) 2. Codifica/decodifica da parte del della frase con crittografia di Cesare utilizzando il campo Cesare (negativo/positivo) e il flag per codifica diretta / inversa, al fine di ottenere la frase risultante 3. Invio al client dellla frase crittografata/decrittografata 17