Applicazione distribuita

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Applicazione distribuita"

Transcript

1 La programmazione di applicazioni distribuite in C Il concetto di applicazione distribuita L architettura di una applicazione distribuita Il paradigma a scambio di messaggi Il paradigma client-server Il paradigma peer-to-peer Lo sviluppo di applicazioni distribuite in C I socket TCP/ IP in C Un esempio di uso dei socket TCP/ IP in C Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 1 Applicazione distribuita Definizione: Applicazione costituita da due o più processi che eseguono in parallelo su macchine distinte connesse da una rete di comunicazione I processi che costituiscono una applicazione distribuita cooperano sfruttando i servizi forniti dalla rete di comunicazione Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 2 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 1

2 Architettura di una applicazione distribuita Una applicazione distribuita è caratterizzata dalla propria architettura run-time Definizione: Con il termine architettura run-time si indica l organizzazione dei componenti (processi) che costituiscono l applicazione a run-time Elementi caratteristici di una architettura Tipologia e ruolo dei componenti Tipologia delle connessioni Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 3 Le architetture basate su scambio messaggi Lo scambio messaggi è il paradigma di comunicazione più semplice per lo sviluppo di applicazioni distribuite Identifica una categoria di architetture distinte Caratteristiche: Ogni componente dell applicazione possiede uno o più indirizzi Un componente A comunica con un componente B spedendo un messaggio ad uno degli indirizzi associati a B Principali architetture basate su scambio messaggi: Architetture client-server Architetture peer-to-peer Architetture a tre livelli (three-tiered architecture) Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 4 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 2

3 L architettura client-server Caratteristiche: Componenti distinti in due tipi: client e server I server erogano un servizio I client sfruttano tale servizio Comunicazioni basate su scambio messaggi Browser Esempio: il web Client: il browser Server: il demone http che fornisce i documenti ai client Invio documento Richiesta documento Demone http Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 5 L architettura peer-to to-peer Caratteristiche Componenti indifferenziati: agiscono tanto da richiedenti di un servizio quanto da fornitori di servizio Comunicazioni basate su scambio messaggi Esempio: talk Blah blah blah Blah blah blah Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 6 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 3

4 L architettura a tre livelli Caratteristiche: Tre tipologie di componenti: Client Server applicativo Data base Comunicazioni basate su scambio messaggi Esempio: applicazioni di commercio elettronico Client (browser + ActiveX o Applet) Server applicativo (demone http+cgi o servlet) DB Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 7 Socket TCP e UDP Con il termine socket si indica un astrazione del sistema operativo per modellare la comunicazione tramite TCP o UDP Nati in ambiente Unix BSD (1982) Disponibili su tutte le piattaforme Le librerie per la gestione dei socket sono fornite con tutti i principali linguaggi di programmazione Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 8 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 4

5 Tipi di socket Socket UNIX: permettono la comunicazione tra due processi in esecuzione sullo stesso host (tipo AF_UNIX) Meccanismo di indirizzamento basato su pathname unix Socket Internet o TCP/ IP: permettono la comunicazione tra processi in esecuzione su macchine diverse (tipo AF_INET) Meccanismo di indirizzamento basato su coppie: <indirizzo IP, porta> Socket connection-oriented: modellano le connessioni con protocolli connection-oriented Esempio: socket Stream Socket connectionless: modellano le connessioni connectionless -Esempio: socket Datagram Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 9 Stream Socket (TCP): meccanismo di funzionamento Server P1 P2 Client P1 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 10 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 5

6 Datagram Socket (UDP): meccanismo di funzionamento Server P1 P2 Client Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 11 Socket connection-oriented oriented socket() bind() listen() accept() si sospende socket() connect() read() write() write() read() close() close() Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 12 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 6

7 Socket connectionless socket() bind() socket() rcvfrom() sendto() si sospende bind() sendto() recvfrom() close() close() Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 13 Indirizzi di socket Un socket ha un indirizzo specificato dalla struttura struct sockaddr { u_short sa_family; /* tipo del socket */ char sa_data[14]; /* indirizzo vero e proprio */ Per i socket Internet la struttura diventa: struct sockaddr_in { u_short sin_family; /* tipo del socket = AF_INET */ u_short sin_port; /* numero di porta */ struct in_addr sin_addr; /* struttura di 4 byte che contiene l indirizzo IP dello host */ char sin_zero[8]; /* byte non usati (padding) */ sin_port e sin_addr devono essere in network byte order Per i socket Unix la struttura diventa: struct sockaddr_un { u_short sun_family; /* tipo del socket = AF_UNIX */ char *sun_path; /* pathname usato come indirizzo del socket */ Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 14 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 7

8 API socket - socket Essendo chiamate alla parte di gestione della rete del sistema operativo sono solitamente implementate come system call #include <sys/types.h> int socket(int family, int type, int protocol) family specifica il tipo di socket (AF_UNIX, AF_INET) type specifica il tipo di canale: SOCK_STREAM per un canale connection-oriented, SOCK_DGRAM per un canale connectionless protocol specifica il tipo di protocollo usato: IPPROTO_UDP per indicare UDP (tipo DGRAM) o IPPROTO_TCP per TCP (tipo STREAM) La primitiva ritorna un intero che rappresenta un descrittore di file socket Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 15 API socket - bind e listen #include <sys/types.h> int bind(int sockfd, struct sockaddr *myaddr, int addrlen) myaddr è un puntatore ad un indirizzo di socket addrlen specifica la lunghezza della struttura myaddr La primitiva associa al descrittore di socket sockfd un indirizzo bind ritorna un valore che indica se l operazione è andata a buon fine #include <sys/types.h> int listen(int sockfd, int maxconn) maxconn specifica la lunghezza della coda delle richieste di connessione pendenti La primitiva specifica, per socket connection-oriented che il processo desidera ricevere richieste di connessione e quante richieste di connessione devono essere accodate prima di ritornare un errore (0 per infinite) listen ritorna un valore che indica se l operazione è andata a buon fine Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 16 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 8

9 API socket - accept #include <sys/types.h> int accept(int sockfd, struct sockaddr *partner, int *len) partner è un puntatore ad un indirizzo di socket vuoto che viene riempito con l indirizzo del partner della comunicazione len deve essere pari alla lunghezza della struttura partner La primitiva estrae la prima richiesta di connessione dalla coda e ritorna un descrittore di socket associato a questa particolare connessione Se non esistono richieste di connessione pendenti il processo si sospende fino a quando un processo client non esegua la corrispondente operazione connect Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 17 API socket - connect #include <sys/types.h> int connect(int sockfd, struct sockaddr *server, int len) server è un puntatore ad un indirizzo di socket al quale ci si vuole connettere len deve essere pari alla lunghezza della struttura server connect ritorna un valore che indica se l operazione è andata a buon fine Se il canale è di tipo connection-oriented, tramite la primitiva connect viene inoltrata una richiesta di creazione di un nuovo canale. Se la richiesta viene accettata tramite la accept, la comunicazione potrà procedere usando il descrittore di file sockfd Se il canale è di tipo connectionless, tramite la primitiva connect si stabilisce l indirizzo del partner della comunicazione. I messaggi spediti verranno consegnati all indirizzo specificato da server e solo da tale indirizzo verranno accettati messaggi in arrivo. In questo caso l uso della primitiva è facoltativo. Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 18 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 9

10 API socket - send e sendto int send(int sockfd, char *buf, int len, int flags) buf è un puntatore ad un buffer di dati che verrà trasmesso al partner della comunicazione così come è stato determinato dalla connect len specifica la lunghezza del buffer flags specifica alcune caratteristiche della comunicazione (solitamente è 0) La primitiva ritorna il numero di byte trasmessi int sendto(int sockfd, char *buf, int len, int flags, struct sockaddr *to, int tolen) sockfd, buf, len, flags come sopra to è un puntatore ad un indirizzo di socket al quale si vuole trasmettere il datagramma buf tolen deve essere pari alla lunghezza della struttura to La primitiva ritorna il numero di byte trasmessi Non è necessario aver prima eseguito una connect Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 19 API socket - recv e recvfrom int recv(int sockfd, char *buf, int len, int flags) buf è un puntatore ad un buffer di dati dove verrà memorizzato il datagramma ricevuto dal partner così come è stato determinato dalla connect len specifica la lunghezza del buffer flags specifica alcune caratteristiche della comunicazione (solitamente è 0) La primitiva ritorna il numero di byte ricevuti int recvfrom(int sockfd, char *buf, int len, int flags, struct sockaddr *from, int *fromlen) sockfd, buf, len, flags come sopra from è un puntatore ad un indirizzo di socket nel quale viene ritornato l indirizzo del mittente del datagramma buf fromlen deve essere pari alla lunghezza della struttura from La primitiva ritorna il numero di byte ricevuti Non è necessario aver prima eseguito una connect Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 20 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 10

11 API socket - read, write e close int read(int sockfd, char *buf, int numbyte) buf è un puntatore ad un buffer di dati dove verranno memorizzati i byte letti dal socket numbyte specifica il numero di byte da leggere La primitiva ritorna il numero di byte effettivamente letti int write(int sockfd, char *buf, int numbyte) buf è un puntatore ad buffer di dati dove sono memorizzati i byte da trasmettere numbyte specifica il numero di byte da scrivere La primitiva ritorna il numero di byte effettivamente scritti int close(int sockfd) La primitiva chiude il socket Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 21 API socket - gethostbyname e gethostname Routine per la determinazione dell indirizzo IP di un host noto il suo nome #include <netdb.h> struct hostent *gethostbyname(const char *name) Routine per la determinazione del nome dell host locale #include <unistd.h> int gethostname(char *hostname, size_t size) La struttura hostent struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_length; char **h_addr_list; ; #define h_addr h_addr_list[0] Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 22 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 11

12 API socket - Routine ausiliarie Routine di conversione di byte order tra quello usato da TCP/ IP e quello locale u_long htonl(u_long hostlong) u_short htons(u_short hostshort) u_long ntohl(u_long netlong) u_short ntohs(u_short netshort) Routine di trasformazione degli indirizzi dal formato stringa a quello in 4 byte consecutivi e viceversa u_long inet_addr(char* str) char *inet_ntoa(struct in_addr addr) Routine per l impostazione delle proprietà di un file #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, long arg) invocata come fcntl(fd, F_SETFL, O_NONBLOCK) imposta il file di descrittore fd in maniera non bloccante. Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 23 La comunicazione attraverso socket UDP Lo User Datagram Protocol è orientato ad implementare applicazioni che utilizzano il paradigma a scambio messaggi Processo sender: genera il messaggio Processo receiver: riceve il messaggio Socket SOCK_DGRAM Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 24 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 12

13 Client UDP #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <netinet/in.h> #include <netdb.h> #define MAXHOSTNAME 128 #define BUFLEN 1024 int main(int argc, char *argv[]) { int sock, port; char *host, *message; struct sockaddr_in sa; struct hostent *hp; /* Parse command line arguments */ if(argc<3) { printf("usage: client <host> <port> [<message>]\n"); exit(-1); host = argv[1]; port = atof(argv[2]); if(argc == 3) message = "Let me try..."; else message = argv[3]; /* set the address the new socket have to be bound to */ memset(&sa, 0, sizeof(struct sockaddr_in)); /* clear address */ hp = gethostbyname(host); /* get address info */ if(hp == NULL) { perror("accessing host by name"); exit(-1); sa.sin_family = AF_INET; sa.sin_port = htons(port); /* set port */ memcpy(&sa.sin_addr, hp->h_addr, hp->h_length); /* set host address */ /* now create the socket */ sock = socket (PF_INET, SOCK_DGRAM, 0); if(sock < 0) { perror("opening the socket"); exit(-1); /* now send data */ if (sendto(sock, message, strlen(message), 0, (struct sockaddr *) &sa, sizeof(sa)) < 0) { perror("writing on stream socket"); exit(-1); /* close */ close(sock); return 0; Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 25 Server UDP #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #define MAXHOSTNAME 128 #define BUFLEN 1024 int main(int argc, char *argv[]) { int sock, portnumber; struct sockaddr_in sa; char buf[buflen]; /* Parse command line arguments */ if(argc<2) {printf("usage: server <port_number>\n");exit(-1); portnumber = atof(argv[1]); /* set the address the new socket have to be bound to */ memset(&sa, 0, sizeof(struct sockaddr_in));/* clear our address */ sa.sin_family = AF_INET; sa.sin_port = htons(portnumber); sa.sin_addr.s_addr=htonl(inaddr_any); /* accept conn. from any host */ /* now create the socket */ sock = socket (PF_INET, SOCK_DGRAM, 0); if(sock < 0) {perror("opening the socket"); exit(-1); /* now bind the socket to the specified address (i.e., sa) */ if (bind(sock, (struct sockaddr *) &sa, sizeof (sa)) < 0) { perror("binding the socket"); exit(-1); /* wait for incoming requests and print them (main loop) */ while(1) { memset(buf,0,buflen); /* receive incoming data */ recv(sock, buf, BUFLEN-1, 0); /* print data */ printf("received message: %s\n", buf); close(sock); return 0; Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 26 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 13

14 La comunicazione attraverso socket TCP I socket TCP permettono l implementazione di applicazioni client/ server basate su comunicazioni con connessione In siffatte applicazioni è possibile strutturare il server in due modi Server iterativo Il server si pone in attesa di una richiesta A fronte di una richiesta esegue il servizio e ritorna i risultati Si rimette in attesa Server a gestore Il server si pone in attesa di una richiesta A fronte di una richiesta crea un processo che si occupa di fornire il servizio richiesto e si rimette subito in attesa Il processo appena creato fornisce il servizio e poi termina Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 27 Client TCP #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <netinet/in.h> #include <netdb.h> #define MAXHOSTNAME 128 #define BUFLEN 1024 int main(int argc, char *argv[]) { int sock, port; char *host, *message; struct sockaddr_in sa; struct hostent *hp; /* Parse command line arguments */ if(argc<3) {printf("usage: client <host> <port> [<message>]\n"); exit(-1); host = argv[1]; port = atof(argv[2]); if(argc == 3) message = "Let me try..."; else message = argv[3]; /* set the address the new socket have to be bound to */ memset(&sa, 0, sizeof(struct sockaddr_in)); hp = gethostbyname(host); /* get address */ if(hp == NULL) { perror("accessing host by name"); exit(-1); sa.sin_family = AF_INET; sa.sin_port = htons(port); /* set port */ memcpy(&sa.sin_addr, hp->h_addr, hp->h_length);/* set host address */ /* now create the socket */ sock = socket (PF_INET, SOCK_STREAM, 0); if(sock < 0) {perror("opening the socket"); exit(-1); /* now connect the socket to the specified address (i.e., sa) */ if (connect(sock, (struct sockaddr *) &sa, sizeof (sa)) < 0) { perror("binding the socket"); exit(-1); /* now send data */ if (write(sock, message, strlen(message)) < 0) { perror("writing on stream socket"); exit(-1); /* close */ close(sock); return 0; Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 28 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 14

15 Server TCP: schema iterativo #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <netinet/in.h> #include <netdb.h> #define MAXHOSTNAME 128 #define BUFLEN 1024 int main(int argc, char *argv[]) { int sock, s, n, portnumber; struct sockaddr_in sa; char buf[buflen]; /* Parse command line arguments */ if(argc<2) {printf("usage: server <port_number>\n"); exit(-1); portnumber = atof(argv[1]); /* set the address the new socket have to be bound to */ memset(&sa, 0, sizeof(struct sockaddr_in)); /* clear our address */ sa.sin_family = AF_INET; sa.sin_port = htons(portnumber); sa.sin_addr.s_addr = htonl(inaddr_any); /* now create the socket */ sock = socket (PF_INET, SOCK_STREAM, 0); if(sock < 0) {perror("opening the socket"); exit(-1); /* now bind the socket to the specified addr. */ if (bind(sock, (struct sockaddr *) &sa, sizeof (sa)) < 0) { perror("binding the socket"); exit(-1); /* listen to the connection and accept incoming requests (main loop) */ if(listen(sock, 0) < 0) { perror("listening"); exit(-1); while(1) { /* accept a new connection */ s = accept(sock,null,null); if(s < 0) { perror("accepting"); exit(-1); /* read data */ while(1) { memset(buf, 0, sizeof(buf)); /* clear buf */ if ((n = read(s, buf, BUFLEN-1)) < 0) perror("reading stream message"); else if (n == 0) break; else { printf("%s\n",buf); /* stop if EOT char is sent */ if(buf[n-1]==4) break; close(s); close(s); close(sock); return 0; Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 29 Gianpaolo Cugola - Impianti di Elaborazione dell'informazione 15

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

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio C: nozioni preliminari 1 of 16 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server,

Dettagli

Programmazione di Rete

Programmazione di Rete Programmazione di Rete Ing. Carlo Nobile Socket slide n 1 Sommario Berkeley's socket Socket UDP: funzioni fondamentali Esempio applicazione: Listener Sender Socket non bloccanti Indirizzo IP e Porta Sicurezza

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

Scrittura dei programmi applicativi di rete

Scrittura dei programmi applicativi di rete Scrittura dei programmi applicativi di rete Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

Esercitazione [7] Client/Server con Socket

Esercitazione [7] Client/Server con Socket Esercitazione [7] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Federico Lombardi - lombardi@dis.uniroma1.it Sistemi di Calcolo - Secondo

Dettagli

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine 2003 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright Questo

Dettagli

L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio

L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio L uso di Socket UDP Usiamo le API Winsock incluse in A.A. 2005/06 TCP TCP vs. UDP UDP Interazione UDP Client/Server Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local

Dettagli

L interfaccia socket

L interfaccia socket L interfaccia socket Application Programming Interface: API Socket API Procedure base Altre procedure Ordinamento dei byte Interazione client-server orientata alla connessione Interazione client-server

Dettagli

Programmazione socket. Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2.

Programmazione socket. Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2. Programmazione socket Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2.5 Italia Applicazioni di rete Realizzare un'applicazione di rete

Dettagli

Scrittura dei programmi applicativi di rete

Scrittura dei programmi applicativi di rete Nota di Copyright RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Questo insieme di trasparenze (detto nel seguito slide) è protetto

Dettagli

I Socket di Berkeley

I Socket di Berkeley I Socket di Berkeley di Francesco Licandro Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università degli studi di Catania A.A. 2004-2005 1 Programmazione su rete Le applicazioni di

Dettagli

Esercitazione [6] Client/Server con Socket

Esercitazione [6] Client/Server con Socket Esercitazione [6] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di

Dettagli

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili

Dettagli

Le socket di Berkeley

Le socket di Berkeley Corso di Reti di Calcolatori I Simon Pietro Romano (spromano@unina.it) Antonio Pescapè (pescape@unina.it) Giorgio Ventre (giorgio@unina.it) Roberto Canonico (roberto.canonico@unina.it) Le socket di Berkeley

Dettagli

IPC Inter Process Communication

IPC Inter Process Communication Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10 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) Le socket di Berkeley Le socket di Berkeley

Dettagli

Sistemi di Elaborazione. Introduzione alla Programmazione distribuita

Sistemi di Elaborazione. Introduzione alla Programmazione distribuita Sistemi di Elaborazione Introduzione alla Programmazione distribuita Obiettivi Introdurre i concetti di base su programmazione distribuita Modello Client-Server Interfaccia Socket Progettare e realizzare

Dettagli

LABORATORIO di Reti di Calcolatori

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

Dettagli

L uso di Socket UDP. TCP vs. UDP UDP

L uso di Socket UDP. TCP vs. UDP UDP L uso di Socket UDP TCP TCP vs. UDP UDP 1 Interazione UDP Client/Server Server 1. Creare un socket 2. Assegnare un local address al socket 3. Iterativamente: a. Inviare e ricevere dati 4. Chiudere il socket

Dettagli

unsigned long inet_addr(cp) char *cp;

unsigned long inet_addr(cp) char *cp; /* bcopystru.c #include struct point int x; char *y; ; struct point a, b; struct pint *pta, *ptb; a.x = 5; a.y = pippo ; b = a; printf i valori del secondo point sono: %d %s\n,b.x,b.y); pta=

Dettagli

IPC: InterProcess Communication

IPC: InterProcess Communication IPC: InterProcess Communication Uso di segnali Uso di file processo invia limitata quantità info (solo un tipo di segnale) e manca il mittente del segnale solo tra processi che condividono un file system

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

IPC: InterProcess Communication

IPC: InterProcess Communication IPC: InterProcess Communication Uso di segnali Uso di file processo invia limitata quantità info (solo un tipo di segnale) e manca il mittente del segnale solo tra processi che condividono un file system

Dettagli

TECN.PROG.SIST.INF. UDP socket in Windows. Roberta Gerboni

TECN.PROG.SIST.INF. UDP socket in Windows. Roberta Gerboni Roberta Gerboni Schema logico della comunicazione UDP in linguaggio C mediante Datagram socket. bind () Con i datagram socket (SOCK_DGRAM) viene realizzata una comunicazine che permette di scambiare dati

Dettagli

Introduzione ai socket

Introduzione ai socket Introduzione ai socket Socket locali Contiene lucidi tratti da: 2006-2007 Marco Faella, Clemente Galdi, Giovanni Schmid (Università di Napoli Federico II), 2004-2005 Walter Crescenzi(Universita di Roma

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ&

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& 3ULPRHVHUFL]LR6RFNHWVWUHDPFRQULGLUH]LRQH Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,

Dettagli

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat.

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat. Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio

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

Interazione (TCP) Client-Server con le socket

Interazione (TCP) Client-Server con le socket Interazione (TCP) Client-Server con le socket D. Gendarmi Interazione TCP Client/Server Server 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a. Accettare

Dettagli

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso DATAGRAM SOCKET Angelastro Sergio Diomede Antonio Viterbo Tommaso Definizione supporta i datagram privo di connessione messaggi inaffidabili di una lunghezza massima prefissata il protocollo UDP supporta

Dettagli

Interazione (TCP) Client-Server con le socket

Interazione (TCP) Client-Server con le socket Interazione (TCP) Client-Server con le socket Interazione TCP Client/Server Server 1. Creare una socket 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a.

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura

Dettagli

Esempio 1: stampa locale di file remoto

Esempio 1: stampa locale di file remoto Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente

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

Il sistema operativo LINUX Inter Process Communication. Sommario. popen ( ) PIPE. pipe ( ) popen ( ) Sistemi operativi Modulo II

Il sistema operativo LINUX Inter Process Communication. Sommario. popen ( ) PIPE. pipe ( ) popen ( ) Sistemi operativi Modulo II Il sistema operativo LINUX Inter Process Communication Sommario Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica dup FIFO

Dettagli

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat.

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat. Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio di 1 punto

Dettagli

Internetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III.

Internetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III. Internetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III http://gapil.truelite.it/ http://www.linuxdidattica.org/docs/a ltre_scuole/planck/socket/ Client Server Esistono vari modelli di architettura

Dettagli

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017 Ing. Niccolò Iardella niccolo.iardella@unifi.it 1 Esercitazione 5 Programmazione con i socket Parte 2

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

Esempio 1: stampa locale di file remoto

Esempio 1: stampa locale di file remoto Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente

Dettagli

Paradigma client-server

Paradigma client-server Interazione Client Server (socket) Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 15 CliSer - 1/31 Paradigma client-server Le applicazioni utente devono interagire con

Dettagli

Creare una applicazione Winsock di base

Creare una applicazione Winsock di base Creare una applicazione Winsock di base Usiamo le API Winsock incluse in Creare un progetto per una Socket Windows (in Dev C++) Selezionare la file New Projects Selezionare Empty Project Salvare

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio C: protocollo connectionless 1 of 14 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server,

Dettagli

Un server di posta (che usa il protocollo SMTP) è identificato dal numero di porta 25.

Un server di posta (che usa il protocollo SMTP) è identificato dal numero di porta 25. Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni

Dettagli

Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor. Alcuni tipi predefiniti di socket

Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor. Alcuni tipi predefiniti di socket Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor Le socket costituiscono un fondamentale strumento di comunicazione, basato sullo scambio di messaggi,

Dettagli

Socket Programming. Socket Programming. Università di Palermo

Socket Programming. Socket Programming. Università di Palermo Socket Programming Socket Programming 1 Architettura Processo (Messagi) HTTP, SMTP, DNS, IMAP,... Trasporto (Messagi) TCP UDP Rete (Pacchetti) ARP IP ICMP Data link (Frames) Ethernet, FDDI, 802.11,...

Dettagli

Socket TCP. seconda parte

Socket TCP. seconda parte Socket TCP seconda parte Schema della connessione Computer 1 127.43.18.1 indirizzo I1 indirizzo I2 Computer 2 143.225.5.3 porta 45000 socket porta 5200 socket processo client processo server socket(...)

Dettagli

Introduzione alla programmazione C di socket

Introduzione alla programmazione C di socket Introduzione alla programmazione C di socket (testo di riferimento : M. J. Donahoo, K. L. Calvert, TCP/IP Sockets in C: Practical Guide for Programmers. Morgan Kaufman Publishers. ) A.A. 2005/06 Una rete

Dettagli

La programmazione di rete

La programmazione di rete La programmazione di rete Introduzione alla programmazione di rete La connessione La trasmissione 20 febbraio 2004 Applicazioni distribuite Applicazione: un insieme di programmi coordinati per svolgere

Dettagli

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2008/2009 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2008/2009 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

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

Reti di Calcolatori - Laboratorio. Lezione 5. Gennaro Oliva

Reti di Calcolatori - Laboratorio. Lezione 5. Gennaro Oliva Reti di Calcolatori - Laboratorio Lezione 5 Gennaro Oliva Server basato su I/O Multiplex Per realizzare un server è possibile utilizzare l'i/o Multiplex Un unico processo iterativo gestisce il socket che

Dettagli

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di 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

Dettagli

C UDP in Windows p53 - variante 1

C UDP in Windows p53 - variante 1 // UDPclient.c C UDP in Windows p53 - variante 1 /* Testo del problema Il processo client invia la stringa "INVIAMI UN NUMERO" diverse volte in un intervallo di tempo di 1 secondo ad un processo server

Dettagli

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017 Ing. Niccolò Iardella niccolo.iardella@unifi.it 1 Esercitazione 4 Programmazione con i socket Parte 1

Dettagli

Progettazione di un client TCP. Progettazione di un server TCP. Esempio: daytime TCP. Client TCP daytime

Progettazione di un client TCP. Progettazione di un server TCP. Esempio: daytime TCP. Client TCP daytime Progettazione di un client TCP Progettazione di un server TCP Passi per la progettazione di un client TCP 1. Creazione di un endpoint Richiesta al sistema operativo 2. Creazione della connessione Implementazione

Dettagli

Sistemi di Elaborazione. Introduzione alla Programmazione distribuita

Sistemi di Elaborazione. Introduzione alla Programmazione distribuita Sistemi di Elaborazione Introduzione alla Programmazione distribuita Obiettivi Introdurre i concetti di base su programmazione distribuita Modello Client-Server Interfaccia Socket Progettare e realizzare

Dettagli

Programmazione di applicazioni di rete

Programmazione di applicazioni di rete Programmazione di applicazioni di rete Valeria Cardellini Università di Roma Tor Vergata Applicazioni di rete Applicazioni di rete - forniscono i servizi di alto livello utilizzati dagli utenti - determinano

Dettagli

TECN.PROG.SIST.INF. TCP socket in Windows. 2015 - Roberta Gerboni

TECN.PROG.SIST.INF. TCP socket in Windows. 2015 - Roberta Gerboni 2015 - Roberta Gerboni Schema logico della comunicazione TCP in linguaggio C mediante bytestream socket. Parte asimmetrica Ruolo passivo bind () Parte asimmetrica Ruolo attivo Parte simmetrica Parte simmetrica

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

Acknowledgment: Prof Vincenzo Auletta, Università di Salerno. Approfondimento alla programmazione distribuita

Acknowledgment: Prof Vincenzo Auletta, Università di Salerno. Approfondimento alla programmazione distribuita Reti Informatiche Approfondimento alla programmazione distribuita Acknowledgment: Prof Vincenzo Auletta, Università di Salerno Introduzione API send e receive bloccanti e non API select Socket UDP Esempio

Dettagli

Laboratorio reti AA 2007/2008. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2007/2008. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2007/2008 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2007/2008 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

Dettagli

Una semplice applicazione client/server 1

Una semplice applicazione client/server 1 Una semplice applicazione client/server 1 Il nostro obiettivo In questa parte del corso implementeremo un applicazione client/server che usa i socket Internet disponibili nei sistemi Unix/Linux. Nello

Dettagli

Guida all' uso dei sockets nella programmazione in C

Guida all' uso dei sockets nella programmazione in C Guida all' uso dei sockets nella programmazione in C ( pseudo-traduzione personalizzata di "Beej's Guide to Network Programming" ) (Prima parte) INTRODUZIONE Finalmente ho trovato una guida chiara e semplice

Dettagli

Esercitazione [08] Server multi-process/multi-thread

Esercitazione [08] Server multi-process/multi-thread Esercitazione [08] Server multi-process/multi-thread Leonardo Aniello aniello@dis.uniroma1.it Daniele Cono D'Elia delia@dis.uniroma1.it Giuseppe Laurenza laurenza@dis.uniroma1.it Federico Lombardi lombardi@dis.uniroma1.it

Dettagli

*HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW

*HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW *HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW 7&3H8'3&OLHQW6HUYHUXVDQGRVHOHFW Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,

Dettagli

Program m azione di Sistem a 6

Program m azione di Sistem a 6 Program m azione di Sistem a 6 Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale

Dettagli

Comunicazione Connectionless o Datagram

Comunicazione Connectionless o Datagram Laboratorio Reti di Calcolatori (A.A. 2008-2009) Socket UDP Delfina Malandrino delmal@dia.unisa.it http://www.dia.unisa.it/professori/delmal/ 2 Comunicazione Connectionless o Datagram In una comunicazione

Dettagli

Implementazione di un server. Server iterativo. Offro servizio ad un client alla volta. Dobbiamo scrivere un programma in C che offre un servizio

Implementazione di un server. Server iterativo. Offro servizio ad un client alla volta. Dobbiamo scrivere un programma in C che offre un servizio Implementazione di un server Server iterativo Offro servizio ad un client alla volta Dobbiamo scrivere un programma in C che offre un servizio Il sistema operativo tiene gli altri client in coda È la variante

Dettagli

Applicazioni distribuite. La programmazione di rete. Interfacce e protocolli. Protocollo applicativo

Applicazioni distribuite. La programmazione di rete. Interfacce e protocolli. Protocollo applicativo Applicazioni distribuite Applicazione: un insieme di programmi coordinati per svolgere una data funzione applicativa. La programmazione di rete Introduzione alla programmazione di rete La connessione La

Dettagli

Comunicazioni fra processi remoti: i socket nello UNIX di Berkeley

Comunicazioni fra processi remoti: i socket nello UNIX di Berkeley Comunicazioni fra processi remoti: i socket nello UNIX di Berkeley La base per l I/O di rete in UNIX BSD (unix di Berkeley) è un astrazione chiamata socket (letteralmente "presa"). Si può considerare il

Dettagli

Ret e i Inf n o f rm r a m t a ich c e Terza esercitazione

Ret e i Inf n o f rm r a m t a ich c e Terza esercitazione Reti Informatiche Terza esercitazione Introduzione Richiami di Programmazione C Differenze principali C/C++ 2 Definizioni di variabili Le variabili possono essere definite solo all inizio di un blocco

Dettagli

Esercitazione [7] Server multi-process/multi-thread

Esercitazione [7] Server multi-process/multi-thread Esercitazione [7] Server multi-process/multi-thread Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi

Dettagli

Il modello Client/Server. La comunicazione

Il modello Client/Server. La comunicazione Il modello Client/Server La comunicazione Se sintetizziamo uno scenario completo possiamo identificare diverse interfacce di comun icazione: Interfaccia di comuncazione: insieme delle API necessarie alla

Dettagli

Reti Informatiche. Quarta esercitazione

Reti Informatiche. Quarta esercitazione Reti Informatiche Quarta esercitazione Introduzione Richiami di Programmazione C Differenze principali C/C++ 2 Definizioni di variabili Le variabili possono essere definite solo all inizio di un blocco

Dettagli

Laboratorio reti AA 2006/2007. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2006/2007. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2006/2007 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2006/2007 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

Dettagli

request reply richiesta client processo di servizio processo server principale From - Valeria Cardellini, Corso Sist. Distr. A.A.

request reply richiesta client processo di servizio processo server principale From - Valeria Cardellini, Corso Sist. Distr. A.A. Applicazioni di rete Forniscono i servizi di alto livello utilizzati dagli utenti Determinano la percezione di qualità del servizio (QoS) che gli utenti hanno della rete sottostante Programmazione di applicazioni

Dettagli

Socket (Seconda Parte) Acknowledgment: Prof Vincenzo Auletta, Università di Salerno

Socket (Seconda Parte) Acknowledgment: Prof Vincenzo Auletta, Università di Salerno Reti Informatiche Socket (Seconda Parte) Acknowledgment: Prof Vincenzo Auletta, Università di Salerno Tipologie di server Modelli di I/O: I/O bloccante I/O non bloccante Sommario I/O Multiplexing (primitiva

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

Domain Name Service. Mapping nomi/indirizzi con Socket API in C

Domain Name Service. Mapping nomi/indirizzi con Socket API in C Domain Name Service Mapping nomi/indirizzi con Socket API in C 1 Risoluzione di nomi simbolici TCP/IP ha bisogno di rappresentazioni numeriche per gli indirizzi (es. 193.204.187.189) e per le porte (es.

Dettagli

T.A.R.I. Socket (ICT, AL)

T.A.R.I. Socket (ICT, AL) Internet Applications (Client-Server Concept, Use of Protocol Ports, Socket API, DNS, E-mail, TELNET, FTP) Funzionalità Livello di trasporto e livelli sottostanti Comunicazione base Disponibilità Livello

Dettagli

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC) - - 2 Parte -

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC) - - 2 Parte - Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012 - Comunicazione Tra Processi (IPC) - - 2 Parte - 1 Sommario Comunicazione tra processi su macchine diverse in rete: Socket TCP o Socket Stream

Dettagli

programmazione distribuita Introduzione Introduzione alla programmazione distribuita

programmazione distribuita Introduzione Introduzione alla programmazione distribuita Reti Informatiche Introduzione alla programmazione distribuita Introduzione Richiami di Programmazione C Differenze principali C/C++ 2 1 Definizioni di variabili Le variabili possono essere definite solo

Dettagli

Reti di Calcolatori AA 2011/2012. Programmazione delle socket. Programmazione delle socket. Programmazione delle socket. Csaba Kiraly Renato Lo Cigno

Reti di Calcolatori AA 2011/2012. Programmazione delle socket. Programmazione delle socket. Programmazione delle socket. Csaba Kiraly Renato Lo Cigno Reti di Calcolatori AA 2011/2012 http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Programmazione delle socket Csaba Kiraly Renato Lo Cigno Programmazione delle socket A note on

Dettagli

Sockets 1. Concetti basici 2. Domini e tipi di comunicazione 3. Protocolli 4. Socket in sistemi UNIX/Windows

Sockets 1. Concetti basici 2. Domini e tipi di comunicazione 3. Protocolli 4. Socket in sistemi UNIX/Windows Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia Sockets 1. Concetti basici 2. Domini e tipi di comunicazione 3. Protocolli 4. Socket in sistemi

Dettagli

Laboratorio reti AA 2006/2007. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2006/2007. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2006/2007 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2006/2007 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

Dettagli

Reti Informatiche. Socket (Seconda Parte) Acknowledgment: Prof Vincenzo Auletta, Università di Salerno

Reti Informatiche. Socket (Seconda Parte) Acknowledgment: Prof Vincenzo Auletta, Università di Salerno Reti Informatiche Socket (Seconda Parte) Acknowledgment: Prof Vincenzo Auletta, Università di Salerno Tipologie di server Modelli di I/O: Sommario I/O bloccante I/O non bloccante I/O Multiplexing (primitiva

Dettagli

Le reti basate su TCP/IP

Le reti basate su TCP/IP internet Le reti basate su TCP/IP Una rete di reti è detta internet (con la i minuscola). Una internet è definita fornendo i protocolli per trasferire le informazioni tra le varie reti. Il TCP/IP serve

Dettagli

Elementi di programmazione con interfaccia Socket

Elementi di programmazione con interfaccia Socket Struttura generale per stream sockets Socket() Well-Known Port Bind() Elementi di programmazione con interfaccia Socket Cenni di programmazione secondo la nuova interfaccia Socket definita nella RFC 2553

Dettagli

Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo

Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo www.dis.uniroma1.it/~midlab Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di Calcolo Multi-Nodo Corso di Laurea in Ingegneria Informatica e Automatica A.A. 2014-2015 Prof. Roberto

Dettagli

Socket TCP. prima parte

Socket TCP. prima parte Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd

Dettagli

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2008/2009 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2008/2009 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

Dettagli

Introduzione alle applicazioni di rete

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

Dettagli

Computazione su Rete Socket Internet Applications (Client-Server Concept, Use of Protocol Ports, Socket API, DNS, , TELNET, FTP)

Computazione su Rete Socket Internet Applications (Client-Server Concept, Use of Protocol Ports, Socket API, DNS,  , TELNET, FTP) Internet Applications (Client-Server Concept, Use of Protocol Ports, Socket API, DNS, E-mail, TELNET, FTP) Funzionalità Livello di trasporto e livelli sottostanti Comunicazione base Disponibilità Livello

Dettagli