Modello client-server

Похожие документы
Telematica II 12. Esercitazione/Laboratorio 4

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

Laboratorio di reti I: Il pacchetto java.net

Java Socket LSO 2008

Networking. Mauro Migliardi Ph. D.

Datagrammi. NOTA: MulticastSocket estende DatagramSocket

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

ESERCITAZIONI DI LABORATORIO 1

Introduzione ai (Java) socket

Protocolli Internet. Canale di comunicazione. canale di comunicazione

Sockets in Java. Lorenzo Gallucci

Corso di Reti di Calcolatori

Corso di Reti di Calcolatori. Datagrammi

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

Architettura Client-Server

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

Socket TCP. seconda parte

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2013/2014

Basic Network Tutorial

Reti di Calcolatori:

Lezione n.7 LPR Informatica Applicata Il Protocollo TCP Stream Socket. 20/04/2009 Laura Ricci

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

R.Focardi Laboratorio di Ingegneria del Software 6. 1

Altri tipi di connessione

Introduzione. Java. G. Prencipe accesso alla rete -- TCP

Lezione n.9 LPR- Informatica Applicata

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sockets e DatagramSocket

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

Reti (già Reti di Calcolatori )

Programmare con le Socket TCP

Applicazioni web. Parte 5 Socket

Lezione n.2 20/2/2006

Sicurezza delle reti. Monga. Ricognizione. Scanning Breve ripasso socket Network mapping Port Scanning NMAP. Le tecniche di scanning

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

Lezione n.7 LPR -Informatica applicata Socket e Datagram UDP. 11/4/2013 Laura Ricci

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

Programmare con le Socket

PROGRAMMARE IN JAVA VOLUME II

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

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

appunti delle lezioni Architetture client/server: applicazioni client

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

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

I protocolli UDP e TCP

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

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

Socket & RMI Ingegneria del Software - San Pietro

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

PROTOCOLLI APPLICATIVI PER INTERNET

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

L interfaccia socket

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

Applicazioni distribuite

Lo strato di applicazione in Internet

MODELLI ISO/OSI e TCP/IP

4 - Il livello di trasporto

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

Corso di Sistemi di Elaborazione delle informazioni

IPC Inter Process Communication


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

Parte II: Reti di calcolatori Lezione 10

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Corso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast

Capitolo 3 Livello di trasporto

Reti. insieme di computer (host) interconnessi. Token evita conflitti di trasmissione Rete più o meno affidabile

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 8 novembre Corso di laurea in Economia

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Il Linguaggio Java: Socket.

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Livello trasporto. Servizi del livello trasporto

HTTP adaptation layer per generico protocollo di scambio dati

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

IL LIVELLO TRASPORTO Protocolli TCP e UDP

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

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

Cenni di programmazione distribuita in C++ Mauro Piccolo

Transmission Control Protocol

Reti di Calcolatori. Il software

Транскрипт:

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 l indirizzo del server (host+porta) Deve effettuare la richiesta di connessione Scambia dati con il server Sia il che il server sono programmi applicativi che utilizzano i servizi di rete Talvolta i termini e server si usano per riferirsi all host su cui viene eseguito l applicativo 1 Client multipli porta effimera server porta nota I aprono connessioni col server (apertura attiva) Il server apre una connessione su richiesta di un (apertura passiva) Un server sequenziale serve le richieste una dopo l altra (coda delle richieste) Un server parallelo divide il tempo fra le varie richieste (multithread) 2 1

netstat p n -inet -a Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 283 10.6.1.9:23 10.0.0.1:1855 ESTABLISHED 16907/in.telnetd: f tcp 0 0 10.6.1.9:3219 10.0.0.1:22 ESTABLISHED 5134/ssh tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 645/X tcp 0 0 0.0.0.0:3047 0.0.0.0:* LISTEN 635/kdm tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 587/smbd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 550/sshd2 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 510/master tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 408/inetd tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 408/inetd tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 349/portmap udp 0 0 0.0.0.0:177 0.0.0.0:* 635/kdm udp 0 0 0.0.0.0:111 0.0.0.0:* 349/portmap raw 0 0 0.0.0.0:1 0.0.0.0:* 7 - raw 0 0 0.0.0.0:6 0.0.0.0:* 7 - coda di ricezione (byte in coda) coda di trasmissione (byte senza ack) 3 Server sequenziale senza connessione (schema in C) server bind(sd,..) crea dati sendto(sd,..) recvfrom(sd,..) richieste le richieste sono accodate e servite in sequenza risposte recvfrom(sd,..) sendto(sd,..) close(sd) 4 2

Server sequenziale connesso (schema in C) bind(sd,..) server listen(sd,..) connect(sd,..) sc=accept(sd,..) write(sd,..) richieste read(sc,..) read(sd,..) risposte write(sc,..) close(sd) close(sc) Server parallelo connesso (schema in C) connect(sd,..) server child bind(sd,..) listen(sd,..) write(sd,..) richieste read(sc,..) sc=accept(sd,..) read(sd,..) risposte fork(..) write(sc,..) close(sd) close(sc) server parent 6 3

java.net E il package Java che mette a disposizione una serie di classi che supportano la programmazione di rete utilizzando i protocolli Internet (IP,TCP,UDP) InetAddress Classe che incapsula gli indirizzi IP e supporta la conversione fra indirizzi numerici e nomi simbolici (DNS) Socket Classe che implementa la socket SocketServer Classe che implementa la socket server (processo che attende connessioni su una porta) 7 InetAdress La classe mette a disposizione metodi che supportano le operazioni comuni sugli indirizzi Internet static InetAddress getlocalhost() produce un oggetto InetAddress che rappresenta l indirizzo dell host locale su cui è eseguito il programma static InetAddress getbyname(string host) produce un oggetto InetAddress che per un host specifico. Il nome dell host può essere espresso o con l indirizzo IP (es. 193.205.7.2) o con il nome della macchina (es. web.dii.unina2.it) String gethostname() produce il nome dell host String gethostaddress() - byte[] getaddress() producono l indirizzo IP (come stringa o array di 4 byte) 8 4

Socket Implementa i socket per connessione I metodi principali sono Socket(InetAddress a, int port) costruttore di un oggetto socket connesso con l host di indirizzo a sulla porta port. Può generare un eccezione se non si riesce ad aprire la connessione InputStream getinputstream() produce il canale di lettura dal socket (si gestisce come un file) OutputStream getoutputstream() produce il canale di scrittura sul socket (si gestisce come un file) void close() chiude il socket 9 ServerSocket Implementa il server TCP: il server rimane in ascolto su una porta specificata nel costruttore fino a quando non c è una richiesta di connessione da parte di un Le richieste vengono accodate ServerSocket(int port) costruttore di un oggetto server in ascolto sulla porta specificata Socket accept() metodo bloccante fino a che non si verifica una richiesta di connessione. Viene prodotto l oggetto socket che rappresenta la connessione 10 5

java.net per UDP DatagramSocket: Classe che implementa socket e server utilizzando UDP Costruttore senza argomenti per il, con il numero di porta per il server metodi send(datagrampacket p) e receive(datagrampacket p) definizione di un timeout SO_TIMEOUT per il receive con setsotimeout (int timeout) DatagramPacket: Classe per rappresentare un datagram per invio o ricezione DatagramPacket(byte[] buffer,int length,inetaddress,int port) costruisce un datagram per spedizione. L indirizzo rappresenta l IP del destinatario, l ultimo parametro il numero di porta void setdata(byte[] buffer) inserisce dati nel pacchetto da inviare DatagramPacket(byte[] buffer,int lenght ) costruisce un datagram per ricezione. L array di byte è il buffer usato per memorizzare il datagram, l intero è la lunghezza InetAddress getaddress() e int getport() sono usati per ottenere IP e porta del mittente del datagram byte[] getdata() ottiene i dati del pacchetto 11 6