Comunicazione Connectionless o Datagram

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Comunicazione Connectionless o Datagram"

Transcript

1 Laboratorio Reti di Calcolatori (A.A ) Socket UDP Delfina Malandrino 2 Comunicazione Connectionless o Datagram In una comunicazione dati Datagram il canale: trasporta messaggi non è affidabile è condiviso non preserva l ordine delle informazioni Applicazioni scritte usando UDP: DNS NFS SNMP 1

2 Struttura di un Applicazione UDP 3 socket() bind() CLIENT socket() sendto() Dati (richiesta) recvfrom() Bloccato in attesa di un datagram sendto() SERVER recvfrom() Dati (risposta) close() Comunicazione senza connessione 4 Per creare un socket: socket(af_inet,sock_dgram, IPPROTO_UDP); SOCK_DGRAM è il tipo di protocollo per datagram IPPROTO_UDP è lo specifico protocollo richiesto (anche 0) 2

3 Funzioni di Input/Output 5 #include <sys/socket.h> int recvfrom(int sd, void* buf, int n, int flags, struct sockaddr* from, socklen_t *len); int sendto(int sd, const void* buf,intn,intflags, const struct sockaddr* to, socklen_t len); Per leggere o scrivere su un socket UDP si utilizzano funzioni di sistema differenti da TCP devono specificare l indirizzo del server e la sua lunghezza Restituiscono numero di byte letti/scritti se OK (>= 0) -1 se c è un errore La sendto esce dopo aver completato la spedizione non garantisce che i dati siano arrivati a destinazione Parametri di sendto 6 int sendto(int sd, const void* buf,intn,intflags, const struct sockaddr* to, socklen_t len); int sd Descrittore del socket void* buf Buffer da cui leggere i byte da inviare size_t n Numero di byte da inviare int flags Vedremo in seguito struct sockaddr* to Indirizzo del socket a cui inviare il datagram socklen_t len Lunghezza dell indirizzo puntato da to 3

4 Parametri di recvfrom 7 int recvfrom(int sd, void* buf, intn, intflags, struct sockaddr* from, socklen_t *len); int sd Descrittore del socket void* buf Buffer in cui scrivere i byte ricevuti size_t n Massimo numero di byte che si possono ricevere int flags Vedremo in seguito struct sockaddr* from Indirizzo del socket da cui ha ricevuto il datagram Può essere NULL socklen_t *len Lunghezza dell indirizzo puntato da from Funzioni sendto e recvfrom 8 I 2 argomenti finali della recvfrom sono simili ai 2 argomenti finali della accept: int recvfrom(int sd, void* buf, intn, intflags, SA* from, socklen_t *len); int accept(int sd, SA*cliaddr, socklen_t* addrlen); Il contenuto della struttura sockaddr da informazioni: Su chi ha inviato i dati (UDP) Su chi ha iniziato la connessione (TCP) 4

5 Funzioni sendto e recvfrom 9 I 2 argomenti finali della sendto sono simili ai 2 argomenti finali della connect: int sendto(int sd, const void* buf,intn,intflags, const SA* to, socklen_t len); int connect(int sd, const SA *servaddr, socklen_t addrlen); Il contenuto della struttura sockaddr va riempito con il protocol address: Dell applicazione a cui inviare dati (UDP) Dell applicazione con cui stabilire una connessione (TCP) HelloWorld UDP 10 Il Client invia la stringa Hello World al server Il server stampa la stringa su stdout 5

6 HelloWorld UDP Server 11 #include "basic.h" int main(inrtargc, char *argv[]) { int sockfd; struct sockaddr_in servaddr,cliaddr; int clilen,n; char buf[maxline]; if ((sockfd = socket(af_inet, SOCK_DGRAM, 0)) == -1) err_sys("socket error\n"); bzero(&servaddr,sizeof(servaddr)); ( servaddr.sin_family = AF_INET; servaddr.sin_port = htons(serv_port); servaddr.sin_addr.s_addr = htonl(inaddr_any); if (bind(sockfd, (SA *)&servaddr,sizeof(servaddr)) == -1) err_sys("bind error\n"); HelloWorld UDP Server 12 clilen = sizeof(struct sockaddr); int recvfrom(int sd, void* buf, intn, intflags, struct sockaddr* from, socklen_t *len); if ((n=recvfrom(sockfd,buf, MAXLINE, 0,(SA *)&cliaddr, &clilen)) == -1) err_sys("recvfrom error\n"); printf( Dati del client: %s\n",inet_ntoa(cliaddr.sin_addr)); buf[n] = '\0'; printf( Dati: \"%s\"\n",buf); close(sockfd); 6

7 HelloWorld UDP Client 13 #include "basic.h" int main(int argc, char *argv[]) { int sockfd,n; struct sockaddr_in servaddr; char buff[maxline]="hello World"; if (argc!= 2) err_quit("usage:./udpclient IP address\n"); if ((sockfd = socket(af_inet, SOCK_DGRAM, 0)) == -1) err_sys("socket"); bzero(&servaddr,sizeof(servaddr)); servaddr.sin_family sin = AF_INET; servaddr.sin_addr.s_addr = inet_addr(argv[1]); if ((n=sendto(sockfd, buff, strlen(buff), 0,(SA *)&servaddr, sizeof(struct sockaddr))) == -1) err_sys("sendto"); close(sockfd); return 0; int sendto(int sd, const void* buf,intn,intflags, const struct sockaddr* to, socklen_t len); Applicazione ECHO UDP 14 Il server replica tutti i messaggi inviatigli dal client il client legge linee di testo dallo standard input e le invia al server il server legge linee di testo dal socket e li rimanda al client il client legge righe di testo dal socket e li invia allo standard output 7

8 ECHO Client 15 #include "basic.h" #include "echo_client.h" int main(int argc, char **argv){ int sockd, n; struct sockaddr_in servaddr; if (argc!= 2) err_quit("utilizzo: echo_client <IPaddress>"); if ( (sockd = socket(af_inet, SOCK_DGRAM, 0)) < 0) err_sys("errore in socket"); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(serv_port); servaddr.sin_addr.s_addr=inet_addr(argv[1]); dg_cli_echo(stdin, sockd, (SA *) &servaddr, sizeof(servaddr)); exit(0); Echo Client: dg_cli_echo 16 #include "basic.h void dg_cli_echo(file *fp, int sockfd, const SA *pservaddr, socklen_t servlen) { int n; char sendline[maxline], recvline[maxline]; while (fgets(sendline, MAXLINE, fp)!= NULL) { sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen) n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL); recvline[n] = 0; fputs(recvline, stdout); 8

9 ECHO Server 17 #include "basic.h int main(int argc, char **argv) { int sockfd; struct sockaddr_in servaddr, cliaddr; if ( (sockd = socket(af_inet, SOCK_DGRAM, 0)) < 0) err_sys("errore in socket"); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr sin s = htonl(inaddr_any); ANY); servaddr.sin_port = htons(serv_port); bind(sockfd, (SA *) &servaddr, sizeof(servaddr)); dg_srv_echo(sockfd, (SA *) &cliaddr, sizeof(cliaddr)); Echo Server: dg_srv_echo 18 #include "basic.h void dg_srv_echo(int sockfd, SA *cliaddr, lidd socklen_t clilen) { int n; socklen_t len; char mesg[maxline]; for ( ; ; ) { len = clilen; if( (n = recvfrom(sockfd, mesg, MAXLINE, 0, cliaddr, &len)) < 0) err_sys("errore nella recvfrom"); if( sendto(sockfd, mesg, n, 0, cliaddr, len)!= n ) err_sys("errore nella sendto"); 9

10 Controllo sul Mittente 19 Un applicazione in ascolto su una porta UDP accetta tutti i datagram ricevuti Il client deve controllare se il datagram ricevuto è la risposta del server o proviene da un altra applicazione Tutti i datagram ricevuti che non provengono dal server devono essere scartati Possibile soluzione Il client confronta l indirizzo del socket da cui ha ricevuto il datagram con quello del socket a cui ha inviato la richiesta Se il server ha più indirizzi IP potremmo scartare datagram legittimi Echo Client con verifica 20 #include "basic.h" #include "echo_client.hclient h" int main(int argc, char **argv){ int sockd, n; struct sockaddr_in servaddr; if (argc!= 2) err_quit("utilizzo: echo_client <IPaddress>"); if ( (sockd = socket(af_inet, SOCK_DGRAM, 0)) < 0) err_sys("errore in socket"); bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(serv_port); servaddr.sin_addr.s_addr=inet_addr(argv[1]); dg_cli_echo(stdin, sockd, (SA *) &servaddr, sizeof(servaddr)); exit(0); 10

11 21 Echo Client con verifica Funzione dg_cli_echo void dg_cli_echo(file *fp, int sockd, const struct sockaddr * servaddr, socklen_t servlen) { int n; char sendline[maxline], recvline[maxline]; char buff[maxline], str[maxline], port[maxline]; socklen_t len; struct sockaddr *replyaddr; if( (replyaddr = malloc(servlen)) == NULL ) (1) err_sys("errore nella malloc"); while (fgets(sendline, MAXLINE, fp)!= NULL) { (2) 1. alloca la memoria per contenere l'indirizzo del mittente 2. Legge fino all EOF 22 Echo Client con verifica Funzione dg_cli_echo n = strlen(sendline); if( sendto(sockd, sendline, n, 0, servaddr, servlen)!= n ) (3) err_sys("errore nella sendto"); len = servlen; if( (n = recvfrom(sockd, recvline, MAXLINE, 0, replyaddr, &len)) < 0 ) (4) err_sys("errore nella recvfrom"); 3. spedisce una riga di testo all'indirizzo contenuto in servaddr 4. salva nel buffer recvline il contenuto del datagram ricevuto L'indirizzo del mittente è salvato in replyaddr #include <sys/socket.h> int recvfrom(int sd, void* buf, intn, intflags, struct sockaddr* from, socklen_t *len); int sendto(int sd, const void* buf,intn,intflags, const struct sockaddr* to, socklen_t len); 11

12 23 Echo Client con verifica Funzione dg_cli_echo if( (len!= servlen) memcmp(servaddr, replyaddr, len)!= 0 ) { struct sockaddr_in *sin = (struct sockaddr_in *) replyaddr; printf("risposta da %s ignorata\n", inet_ntop(af_inet, &sin->sin_addr, buff, sizeof(buff))); continue; recvline[n] = 0; if( fputs(recvline, stdout) == EOF ) err_sys("errore nella fputs"); 5. Controlla l indirizzo sorgente del datagram ricevuto se è diverso da quello in servaddr lo scarta altrimenti stampa su stdout il messaggio del server Datagrammi Perduti 24 Se un datagram si perde (es. un router lo butta via) l applicazione che lo sta attendendo può rimanere bloccata in una recvfrom() Soluzione In alcuni è possibile porre un timeout sulla recvfrom() Comunque non è possibile scoprire se il messaggio del client non è mai arrivato al server oppure se la risposta del server non è arrivata al client Utilizzare TCP 12

13 Client UDP Connessi 25 E possibile utilizzare la funzione connect() anche in applicazioni i i client senza connessione Permette di impostare una volta per tutte le due componenti remote dell associazione del client La connect() su un socket UDP implica che il kernel memorizza l indirizzo i IP e la porta con cui si vuole comunicare Client UDP Connessi 26 Può inviare datagram soltanto all indirizzo specificato nella chiamata alla connect non si usa sendto ma write o send I datagram verranno automaticamente spediti all indirizzo specificato nella chiamata a connect Può ricevere solo datagram inviati dall indirizzo specificato nella chiamata alla connect non si usa recvfrom, ma read o readv Un server UDP può comunicare con un solo client per volta Datagram che arrivano da un altro indirizzo IP verranno instradati ad un altra connessione socket UDP sullo stesso host Il pacchetto verrà scartato se non ci sono altre connessioni UDP Un errore ICMP port unreachable verrà generato 13

14 Riutilizzo della connect 27 È possibile richiamare più volte la connect() all interno della stessa applicazione i Può essere usato per Modificare l indirizzo del server con cui si vuole comunicare (specificare nuovo IP e nuova porta) Disconnettere il socket specificando AF_UNSPEC nel campo sin_family Potrebbe ritornare l errore EAFNOSUPPORT, ma è accettabile Funzione dg_cliconn_echo 1 28 void dg_cliconn_echo(file *fp, int sockd, const SA * servaddr, socklen_t servlen) { int n; char sendline[maxline], recvline[maxline]; char buff[maxline], str[maxline], port[maxline]; socklen_t len; void *ptr; if (connect(sockd, (SA *) servaddr, servlen) < 0) (1) err_sys("errore nella connect"); 1. Connette il client all indirizzo contenuto in servaddr Il client non può inviare datagram ad altri indirizzi 14

15 Funzione dg_cliconn_echo 2 29 while (fgets(sendline, MAXLINE, fp)!= NULL) { n = strlen(sendline); if( write(sockd, sendline, n)!= n ) (3) err_sys("errore nella write"); if( (n = read(sockd, recvline, MAXLINE)) < 0 ) (4) err_sys("errore nella read"); recvline[n] = 0; if( fputs(recvline, stdout) == EOF ) err_sys("errore nella fputs"); 3. Usa la write per scrivere sul socket 4. Usa la read per leggere dal socket Inaffidabilità di UDP 30 UDP non dà alcuna garanzia sulla consegna dei datagram Consideriamo la seguente applicazione client/server UDP Il client spedisce un serie di pacchetti, senza aspettare alcuna risposta (inviamo un numero fissato di datagram) Il server cicla all infinito e conta i datagram ricevuti Termina quando riceve un segnale SIGINT (CTRL-C) da stdin c e un gestore di segnale che gestisce SIGINT e stampa il numero di datagram ricevuti 15

16 Inaffidabilità di UDP 31 Applicazione client Scrive un numero fissato di datagram al server int main(int argc, char **argv) { #define NDG 2000 int sockd; /* datagram da inviare */ struct sockaddr_in servaddr; #define DGLEN 1400 /* lunghezza di ogni datagram */ if (argc!= 2) err_quit("utilizzo: count_client void dg_cli_count(file *fp, int sockd, const SA <IPaddress>"); *pservaddr, socklen_t servlen) { /* riempie la struttura servaddr */ int i; if( (sockd = socket(af_inet, char sendline[maxline]; SOCK_DGRAM, 0)) < 0 ) err_sys("errore nella socket"); dg_cli_count(stdin, sockd, (SA *) &servaddr, sizeof(servaddr)); exit(0); for (i = 0; i < NDG; i++) if( sendto(sockd, sendline, DGLEN, 0, pservaddr, servlen)!= DGLEN ) err_sys("errore nella sendto"); printf("inviati %d datagram al server\n", NDG); Inaffidabilità di UDP 32 Applicazione server int main(int argc, char **argv) { int sockd; struct sockaddr_in servaddr, cliaddr; if( (sockd = socket(af_inet, SOCK_DGRAM, 0)) < 0 ) err_sys("socket error"); /* riempie struttura servaddr */ if( bind(sockd, (SA *) &servaddr, sizeof(servaddr)) < 0 ) err_sys("bind error"); dg_srv_count(sockd, _,(SA *) &cliaddr, sizeof(cliaddr)); static void recvfrom_int(int signo) { printf("\ndatagrams ricevuti: %d\n", count); exit(0); static void recvfrom_int(int); static int count; void dg_srv_count(int sockd, struct sockaddr *p_cliaddr, socklen_t clilen) { int n; socklen_tlen; char mesg[maxline]; if( signal(sigint, recvfrom_int) == SIG_ERR ) err_sys("errore nella signal"); for (;;){ ; len = clilen; if( (n = recvfrom(sockd, mesg, MAXLINE, 0, p_cliaddr, &len)) < 0 ) err_sys("errore nella recfrom"); count++; 16

17 33 Inaffidabilità di UDP freebsd % netstat -s -p udp udp: datagrams received 0 with incomplete header 0 with bad data length field 0 with bad checksum 0 with no checksum 832 dropped due to no socket 16 broadcast/multicast datagrams dropped due to no socket 1971 dropped due to full socket buffers 0 not for hashed pcb delivered datagrams output freebsd % udpserver ^C received 30 datagrams Error: full socket buffers Non c è modo di sapere quali applicazioni o porte hanno riscontrato problemi freebsd % netstat -s -p udp udp: datagrams received 0 with incomplete header 0 with bad data length field 0 with bad checksum 0 with no checksum 832 dropped due to no socket 16 broadcast/multicast datagrams dropped due to no socket 3941 dropped due to full socket buffers 0 not for hashed pcb delivered datagrams output =1970 discarded = 30 delivered =2000 received (dall host server non dall applicazione) 17

SERVER CLIENT. Struttura di un Applicazione UDP. Socket UDP. Parametri di sendto. Funzioni di Input/Output. Prof. Vincenzo Auletta

SERVER CLIENT. Struttura di un Applicazione UDP. Socket UDP. Parametri di sendto. Funzioni di Input/Output. Prof. Vincenzo Auletta I semestre 03/04 Struttura di un Applicazione UDP Socket UDP socket() bind() Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ CLIENT socket() sendto() Dati (richiesta)

Dettagli

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori Socket UDP. Paolo D Arco Abstract Scopo della lezione è descrivere le funzioni che l interfaccia dei socket offre per far interagire client e server attraverso il protocollo

Dettagli

Socket UDP. Comunicazione Connectionless o Datagram

Socket UDP. Comunicazione Connectionless o Datagram Ret d Calcolator a.a. 2007/2008 Socket UDP Dott. Delfna Malandrno delmal@da.unsa.t http://ss.da.unsa.t/~delmal p//ssd s / d Dpartmento d Informatca ed Applcazon R.M. Capocell Unverstà degl Stud d Salerno

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

Server Iterativi. Server TCP Ricorsivi. Fork. Server Ricorsivi. un server iterativo gestisce una connessione alla volta. Prof.

Server Iterativi. Server TCP Ricorsivi. Fork. Server Ricorsivi. un server iterativo gestisce una connessione alla volta. Prof. Università degli studi di Salerno Laurea in Informatica a.a. 2003/04 TCP Ricorsivi Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 1 Iterativi un server iterativo

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

Introduzione. Prof. Roberto De Prisco. Telefonini. o almeno. e non rispondere. Università degli studi di Salerno Laurea e Diploma in Informatica

Introduzione. Prof. Roberto De Prisco. Telefonini. o almeno. e non rispondere. Università degli studi di Salerno Laurea e Diploma in Informatica Prof. Roberto De Prisco Introduzione Università degli studi di Salerno Laurea e Diploma in Informatica Telefonini 2 o almeno e non rispondere 1 Presentazione 3 Prof. Roberto De Prisco studio: L1-13 robdep@unisa.it

Dettagli

P3-04: I/O multiplexing

P3-04: I/O multiplexing Autunno 2002 Prof. Roberto De Prisco -04: I/O multiplexing Università degli studi di alerno Laurea e Diploma in Informatica Problema 04.2 Un programma deve gestire due input simultaneamente tandard input

Dettagli

Laboratorio Reti di Calcolatori (A.A ) Delfina Malandrino.

Laboratorio Reti di Calcolatori (A.A ) Delfina Malandrino. Laboratorio Reti di Calcolatori (A.A. 2008-2009) I/O Multiplexing Delfina Malandrino delmal@dia.unisa.it it http://www.dia.unisa.it/professori/delmal/ Problema 2 Un applicazione deve gestire più input

Dettagli

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori Funzioni utili, server ricorsivi, echo client ed echo server. Paolo D Arco Abstract Scopo della lezione è presentare alcune funzioni di utilità generale (e.g., funzioni

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

Funzioni bloccanti e soluzioni

Funzioni bloccanti e soluzioni Funzioni bloccanti e soluzioni La funzione accept() e le funzioni per la gestione dell I/O (ad es., read() e write()) sono bloccanti Ad es., le funzioni read() e recv() rimangono in attesa finché non vi

Dettagli

Interazione con il DNS Conversioni di Nomi ed Indirizzi

Interazione con il DNS Conversioni di Nomi ed Indirizzi a.a. 2003/04 Interazione con il DNS Conversioni di Nomi ed Indirizzi Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in

Dettagli

Timeout. Socket Avanzati. Funzione alarm() Client echo UDP con alarm

Timeout. Socket Avanzati. Funzione alarm() Client echo UDP con alarm I semestre 02/03 Socket Avanzati Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Timeout Abbiamo visto

Dettagli

Laboratorio Reti di Calcolatori (A.A ) Delfina Malandrino.

Laboratorio Reti di Calcolatori (A.A ) Delfina Malandrino. Laboratorio Reti di Calcolatori (A.A. 2008-2009) Delfina Malandrino delmal@dia.unisa.it http://www.dia.unisa.it/professori/delmal/ Applicazione echo Il server replica un messaggio inviato dal client Il

Dettagli

PRATICA - Lezione 1. Autunno PRATICA (Lez. 1)

PRATICA - Lezione 1. Autunno PRATICA (Lez. 1) PRATICA - Lezione! " # $ &%' ( "*)+,.-/ * "* )+ 2 3547698:47;!

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

Funzioni bloccanti e soluzioni. Funzioni bloccanti e soluzioni (2) Parametri della funzione select() Funzione select()

Funzioni bloccanti e soluzioni. Funzioni bloccanti e soluzioni (2) Parametri della funzione select() Funzione select() Funzioni bloccanti e soluzioni La funzione accept() e le funzioni per la gestione dell I/O (ad es., read() e write()) sono bloccanti Ad es., le funzioni read() e recv() rimangono in attesa finché non vi

Dettagli

Sono definiti per vari protocolli

Sono definiti per vari protocolli Autunno 2002 Prof. Roberto De Prisco -02: Socket TCP Università degli studi di Salerno Laurea e Diploma in Informatica Socket 02.2 Letteralmente significa presa (di corrente) È l astrazione di un canale

Dettagli

Problema. I/O Multiplexing. Struttura delle Operazioni di Lettura. Modelli di I/O. Prof. Vincenzo Auletta

Problema. I/O Multiplexing. Struttura delle Operazioni di Lettura. Modelli di I/O. Prof. Vincenzo Auletta a.a. 2003/04 Problema I/O Multiplexing Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1 Un applicazione

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

Programmazione di applicazioni di rete con socket - parte 1

Programmazione di applicazioni di rete con socket - parte 1 Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Programmazione di applicazioni di rete con socket - parte 1 Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2008/09 Applicazioni

Dettagli

Sviluppo di Applicazioni su Rete. Introduzione all API socket di Berkeley. Interazione tra Processi. Modello Client-Server

Sviluppo di Applicazioni su Rete. Introduzione all API socket di Berkeley. Interazione tra Processi. Modello Client-Server a.a. 2003/04 Introduzione all API socket di Berkeley Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica

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

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

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

*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

Esercitazione sulle Socket

Esercitazione sulle Socket Esercitazione sulle Socket Sommario Echo Server Specifica Descrizione programma (TCP Socket) Client UNIX/WIN Server UNIX/WIN Server multithread UNIX/WIN Descrizione programma (UDP Socket) 2 Interazione

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

Progettazione di Applicazioni Robuste. Applicazione Echo. Schema Generale di un Server TCP Ricorsivo 1. Applicazione echo

Progettazione di Applicazioni Robuste. Applicazione Echo. Schema Generale di un Server TCP Ricorsivo 1. Applicazione echo a.a. 2003/04 Applicazione Echo Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Progettazione di Applicazioni Robuste nel progettare applicazioni su rete robuste

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

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

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

SERVER CLIENT. Letteralmente significa presa (di corrente) È l astrazione di un canale di comunicazione fra due computer connessi da una rete

SERVER CLIENT. Letteralmente significa presa (di corrente) È l astrazione di un canale di comunicazione fra due computer connessi da una rete Socket 02.2 Letteralmente significa presa (di corrente) È l astrazione di un canale di comunicazione fra due computer connessi da una rete -02: Socket TCP Autunno 2002 Prof. Roberto De Prisco Sono definiti

Dettagli

Timeout. Socket Avanzati. Client echo UDP con alarm. Funzione alarm()

Timeout. Socket Avanzati. Client echo UDP con alarm. Funzione alarm() Università degli studi di Salerno Laurea in Informatica a.a. 2003/04 Socket Avanzati Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 1 Timeout Abbiamo visto molte

Dettagli

Server Ricorsivii i. Dott. Delfina Malandrino.

Server Ricorsivii i. Dott. Delfina Malandrino. A.A. 2007/2008 Rcorsv delmal@da.unsa.t http://ss.da.unsa.t/~delmal Dpartmento d Informatca ed Applcazon R.M. Capocell Unverstà degl Stud d Salerno Iteratv Un server teratvo gestsce una sngola connessone

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

funzione fork() La funzione fork è usata per duplicare un processo. #include <unistd.h> pid_t fork (void);

funzione fork() La funzione fork è usata per duplicare un processo. #include <unistd.h> pid_t fork (void); La funzione fork è usata per duplicare un processo. #include pid_t fork (void); funzione fork() restituisce -1 in caso di errore. Se tutto va a buon fine restituisce 0 nel processo figlio ed

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

Applicazione ECHO. Dott. Delfina Malandrino. p//ssd s / d

Applicazione ECHO. Dott. Delfina Malandrino.  p//ssd s / d a.a 2007/2008 Applcazone ECHO delmal@da.unsa.t http://ss.da.unsa.t/~delmal p//ssd s / d Dpartmento d Informatca ed Applcazon R.M. Capocell Unverstà degl Stud d Salerno Applcazone echo Il server replca

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

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

P3-05: Socket Options

P3-05: Socket Options Autunno 2002 Prof. Roberto De Prisco -05: Socket Options Università degli studi di Salerno Laurea e Diploma in Informatica Socket options 05.2 Ogni socket aperto ha delle proprietà che ne determinano alcuni

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

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

(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

Reti di Calcolatori. Saper scrivere semplici programmi per la comunicazione su una rete di calcolatori. Assunzione. Ambiente di sviluppo LABORATORIO

Reti di Calcolatori. Saper scrivere semplici programmi per la comunicazione su una rete di calcolatori. Assunzione. Ambiente di sviluppo LABORATORIO Obiettivo 2 orso di laurea in Informatica Reti di alcolatori A.A. 2007-2008 Prof. Roberto De Prisco aper scrivere semplici programmi per la comunicazione su una rete di calcolatori Assunzione apete già

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 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

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

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

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

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

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

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

Socket I MIDLAB. Sirio Scipioni. M I D L A B

Socket I MIDLAB. Sirio Scipioni.   M I D L A B scipioni@dis.uniroma1.it http://www.dis.uniroma1.it/~scipioni MIDLAB http://www.dis.uniroma1.it/~midlab Sommario Strutture dati Funzioni Echo client/server Echo server TCP Echo client TCP Echo server UDP

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

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

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

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

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

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

SCUOLA DI INGEGNERIA DELL INFORMAZIONE. Corso di Piattaforme Software per la rete MODULO 2 Anno Accademico Prof. William FORNACIARI

SCUOLA DI INGEGNERIA DELL INFORMAZIONE. Corso di Piattaforme Software per la rete MODULO 2 Anno Accademico Prof. William FORNACIARI SCUOLA DI INGEGNERIA DELL INFORMAZIONE Corso di Piattaforme Software per la rete MODULO 2 Anno Accademico 2016-2017 Prof. William FORNACIARI SOLUZIONE D1 D2 D3 TOT Laureando SI NO NOTE PER LO SVOLGIMENTO

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

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori Comunicazione tra processi in una interrete, Socket API. Paolo D Arco Abstract Scopo della lezione è spiegare concisamente come possono comunicare due processi in esecuzione

Dettagli

funzione close() La funzione close è utilizzata normalmente per chiudere un descrittore di file, è utilizzata per chiudere un socket e terminare una

funzione close() La funzione close è utilizzata normalmente per chiudere un descrittore di file, è utilizzata per chiudere un socket e terminare una funzione close() La funzione close è utilizzata normalmente per chiudere un descrittore di file, è utilizzata per chiudere un socket e terminare una connessione TCP. int close (int socketfd); restituisce

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

5 Esercitazione (svolta):

5 Esercitazione (svolta): 5 Esercitazione (svolta): Socket C con select Sviluppare un applicazione C/S in cui uno stesso server fornisce due servizi, richiesti da due tipi di client: il conteggio del numero di file contenuti in

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

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

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

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

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

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori I/O Multiplexing. Paolo D Arco Abstract copo della lezione è presentare i vari modelli di I/O, descrivere la funzione select(), e costruire un echo client robusto ed

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

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

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

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

Corso di laurea in Informatica. Reti di Calcolatori A.A. 2007-2008. Prof. Roberto De Prisco LABORATORIO. Lezione

Corso di laurea in Informatica. Reti di Calcolatori A.A. 2007-2008. Prof. Roberto De Prisco LABORATORIO. Lezione Corso di laurea in Informatica Reti di Calcolatori A.A. 2007-2008 Prof. Roberto De Prisco Lezione 1 Obiettivo 2 Saper scrivere semplici programmi per la comunicazione su una rete di calcolatori Assunzione

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

Creare un'elementare backdoor in C in ambiente UNIX

Creare un'elementare backdoor in C in ambiente UNIX Creare un'elementare backdoor in C in ambiente UNIX DISCLAIMER: Questo tutorial è a solo scopo didattico. L'autore NON si prende alcuna responsabilità circa usi errati o non legali delle informazioni qui

Dettagli

Socket II MIDLAB. Sirio Scipioni. M I D L A B.

Socket II MIDLAB. Sirio Scipioni.  M I D L A B. Socket II Sirio Scipioni scipioni@dis.uniroma1.it http://www.dis.uniroma1.it/~scipioni MIDLAB http://www.dis.uniroma1.it/~midlab Sommario Richiami sui processi Echo server TCP (multi processo) Richiami

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

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 5 (svolta) Server Multiservizio: Socket C con select Luca Foschini Anno accademico 2017/2018 Esercitazione

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

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

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

Esempi di Client e Server

Esempi di Client e Server Esempi di Client e Server Corso di laurea in Informatica Laboratorio di Reti di Calcolatori A.A. 0-0 Simone Bassis bassis@di.unimi.it #include #include #include #include

Dettagli

INTERNET DOMAIN SOCKETS (Cap.59)

INTERNET DOMAIN SOCKETS (Cap.59) INTERNET DOMAIN SOCKETS (Cap.59) Internet Domain Stream Socket TCP Internet Domain Datagram Socket UDP A differenza degli UDDS I datagrams possono essere persi duplicati o arrivare in un ordine diverso

Dettagli

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

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

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

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

Reti di Calcolatori - Laboratorio. Lezione 6. Gennaro Oliva

Reti di Calcolatori - Laboratorio. Lezione 6. Gennaro Oliva Reti di Calcolatori - Laboratorio Lezione 6 Gennaro Oliva Diverse forme di indirizzamento Type IPv6 TCP # IP interfaces identified # IP interfaces delivered to Unicast Anycast Multicast Broadcast opt.

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