Server Ricorsivii i. Dott. Delfina Malandrino.
|
|
- Pio Rosso
- 6 anni fa
- Visualizzazioni
Transcript
1 A.A. 2007/2008 Rcorsv Dpartmento d Informatca ed Applcazon R.M. Capocell Unverstà degl Stud d Salerno Iteratv Un server teratvo gestsce una sngola connessone per volta mentre è mpegnato a gestre la connessone con dato clent, potrebbero arrvare altre rcheste d connessone l S.O. stablsce le connesson che però restano n attesa nella coda d backlog Adatt quando: c sono poch clent da servre servre un clent rchede poco tempo es. daytme 1
2 Rcorsv Gestscono pù connesson contemporaneamente Utlzzano una copa (processo/thread) d se stess per gestre ogn connessone Uso della chamata d sstema fork() per generare un processo fglo che eredta una connessone con un clent I process server padre e fglo grano contemporaneamente sulla macchna server Il processo fglo gestsce la connessone con un dato clent Il processo padre può accettare la connessone con un altro clent, assegnandola ad un altro processo fglo per la gestone Funzone fork() #nclude <unstd.h> pd_t fork(vod); Consente d creare un nuovo processo fglo copa esatta del processo chamante (padre) eredta tutt descrttor del processo padre Resttusce un rsultato sa al padre che al fglo al padre resttusce l pd del fglo al fglo resttusce 0 Padre e fglo condvdono gl stess oggett l oggetto è occupato fno a quando sa l padre che l fglo non lo rlascano 2
3 Struttura d un Rcorsvo nt pd_t lstensd, connsd; pd; lstensd = socket(af_inet, SOCK_STREAM, 0); /* rempe la struttura sockaddr_n */ bnd(lstensd, ); lsten(lstend, ); for ( ; ; ) { connsd = accept(lstensd, ); f ( (pd = fork()) == 0) { /* l processo fglo */ close(lstensd); /* chude l socket d ascolto */ dot(connsd); /* serve la rchesta */ close(connsd); /* chude l socket d connessone*/ ext(0); /* termna */ close(connsd); /* l processo padre chude l socket della connessone */ Socket Rcorsv rcorsvo: Usa una copa d se stesso per gestre una rchesta. Clent connect() rchesta d connessone lstenfd Stato del clent e del server quando l server è bloccato nella chamata ad accept() e la rchesta d connessone arrva dal clent. 1. l server chama la funzone Clent accept() 2. vene resttuto un nuovo lstenfd socket descrptor per servre connect() la connessone con l clent. connessone connfd stablta 3
4 Socket Rcorsv Invocazone della system call fork() Clent connect() connessone stablta lstenfd connfd fork server parent 1. l server esegue una fork() 2. process padre e fglo condvdono descrttor d socket lstenfd connfd server chld Socket Rcorsv Il processo padre chude l connected socket Il processo fglo chude l lstenng socket Clent connect() connessone stablta lstenfd connfd lstenfd() connfd server parent server chld 1. l padre chude l socket della connessone 2. l fglo chude l socket d accettazone 4
5 daytme Rcorsvo 1 #nclude basc.h nt man(nt argc, char **argv) { pd_t pd; nt lstensd, connsd; struct sockaddr_n servaddr, claddr; char buff[maxline]; tme_t tcks; f( (lstensd = socket(af_inet, SOCK_STREAM, 0)) < 0) err_sys( socket error"); bzero(&servaddr, szeof(servaddr)); servaddr.sn_famly = AF_INET; servaddr.sn_addr.s_addr = htonl(inaddr_any); servaddr.sn_port = htons(serv_port); daytme Rcorsvo 2 f( (bnd(lstensd, (SA *) &servaddr, szeof(servaddr))) < 0) err_sys( bnd error"); f( lsten(lstensd, LISTENQ) < 0 ) err_sys( lsten error"); for ( ; ; ) { f( (connsd = accept(lstensd, (struct sockaddr *) NULL, NULL)) < 0) err_sys( accept error"); 5
6 daytme Rcorsvo 3 f( ((pd = fork()) == 0 ){ close(lstensd); tcks = tme(null); snprntf(buff, szeof(buff), "%.24s\r\n", ctme(&tcks)); dot(connsd) f( wrte(connsd, buff, strlen(buff))!= strlen(buff) ) err_sys( wrte error"); close(connsd); ext(0); close(connsd); Clent daytme 1 #nclude "basc.h" nt man(nt argc, char **argv) { nt sd, n; char recvlne[maxline]; struct sockaddr_n servaddr; f ( argc!= 2 ) err_qut("utlzzo: daytmeclent <IPaddress>"); f ( (sd = socket(af_inet, SOCK_STREAM, 0)) < 0 ) fprntf(stderr, errore, n socket"); bzero(&servaddr, szeof(servaddr)); servaddr.sn_famly = AF_INET; servaddr.sn_port = htons(serv_port); f ( net_pton(af_inet, argv[1], &servaddr.sn_addr) <= 0 ) fprntf(stderr, errore n net_pton per %s", argv[1]); 6
7 Clent daytme 2 f ( connect(sd, (SA *) &servaddr, szeof(servaddr)) < 0 ) err_sys("errore n connect"); whle ( (n = read(sd, recvlne, MAXLINE)) > 0 ) { recvlne[n] = 0; f (fputs(recvlne, stdout) == EOF) err_sys( fputs error"); f (n < 0) err_ sys( read error"); ext(0); Getsockname e Getpeername #nclude <sys/socket.h> nt getsockname(nt e( t sd, struct sockaddr *localaddr, add socklen _t *addrlen); nt getpeername(nt sd, struct sockaddr *peeraddr, socklen_t *addrlen); Fornscono gl ndrzz assegnat ad un socket getsockname recupera l ndrzzo locale assegnato ad un socket getpeername recupera l ndrzzo remoto assocato ad un socket utlzzate dal clent per conoscere ndrzzo IP e numero d porta assegnat dal S.O. se non chama bnd numero d porta e ndrzzo IP scelt dal S.O. utlzzate dal server per conoscere ndrzzo IP su cu ha rcevuto la rchesta per conoscere l ndrzzo del clent???? usa l accept 7
8 Socket d ascolto: sockname 1 [posedon] 7:35pm~/RETI ->./sockname_server Socket d ascolto: Indrzzo IP: , porta: 9877 #nclude "basc.h" nt man(nt argc, char **argv) { pd_t pd; nt lstensd, connsd; struct sockaddr_n servaddr, claddr; socklen_t servaddr_len, claddr_len; char buff[maxline]; f( (lstensd = socket(af_inet, SOCK_STREAM, 0)) < 0) err_sys("errore n socket"); /* rempe l oggetto servaddr */ /* nvoca bnd e lsten */ getsockname(lstensd, (struct sockaddr *) &servaddr, &servaddr_len); (1) net_ntop(af_inet, &servaddr.sn_addr, buff, szeof(buff)); (2) prntf("socket d ascolto: \tindrzzo IP: %s, porta: %d\n", buff, ntohs(servaddr.sn_port)); (3) 1. ottene l'ndrzzo IP ed l numero d porta d lstensd 2. estrae da servaddr l'ndrzzo IP e lo copa n buff 3. stampa ndrzzo IP e porta sockname 2 for ( ; ; ) { claddr_len len = szeof(claddr); f( (connsd = accept(lstensd, (struct sockaddr *) &claddr, &claddr_len)) < 0) (4) err_sys("errore n accept"); getsockname(connsd, (struct sockaddr *) &servaddr, &servaddr_len); (5) net_ntop(af_inet, &servaddr.sn_addr, buff, szeof(buff)); (6) 4. ottene dall accept l'ndrzzo IP ed l numero d porta del clent non serve getpeername 5. ottene l ndrzzo del socket d connessone 6. scrve n buff l ndrzzo IP n formato strnga 8
9 [posedon] 7:35pm~/RETI ->./sockname_server Socket d ascolto: Indrzzo IP , porta 9877 Socket d connessone: Indrzzo IP , porta 9877 sockname 3 prntf("socket d connessone: Indrzzo IP %s, porta %d\n", buff, ntohs(servaddr.sn_port)); prntf("indrzzo del peer: ndrzzo IP %s, porta %d\n", net_ntop(af_inet, &claddr.sn_addr, buff, szeof(buff)), ntohs(claddr.sn_port) ); f( (pd = fork()) == 0 ) { close(lstensd); do_t(connsd) close(connsd); ext(0); close(connsd); [posedon] 7:35pm~/RETI ->./sockname_server Socket d ascolto: Indrzzo IP , porta 9877 Socket d connessone: Indrzzo IP , porta 9877 Indrzzo del peer: ndrzzo IP , porta [delmal@wonderland RETI]$./sockname_clent Indrzzo locale: Clent sockname 1 Indrzzo locale: ndrzzo IP , porta #nclude "basc.h" nt man(nt argc, char **argv) { 1. servaddr contene nt sockd, n; l ndrzzo del char buff[maxline], recvlne[maxline + 1]; server struct sockaddr_n servaddr, localaddr, peeraddr; 2. localaddr contene socklen_t localaddr_len, peeraddr_len; l ndrzzo f ((sockd = socket(af_inet, SOCK_STREAM, 0)) < 0 ) locale della err_sys("errore n socket"); connessone dentfcata da /* rempe la struttura servaddr */ (1) sockd f (connect(sockd, (struct sockaddr *) &servaddr, szeof(servaddr)) < 0 ) 3. stampa err_sys("errore n connect"); ndrzzo Ip e porta localaddr_len = szeof(localaddr); getsockname(sockd, (struct sockaddr *) &localaddr, &localaddr_len);(2) net_ntoa(claddr.sn_addr); prntf("indrzzo locale: ndrzzo IP %s, porta %d\n", net_ntop(af_inet, &localaddr.sn_addr, buff, szeof(buff)), ntohs(localaddr.sn_port)); 9
10 Clent sockname 2 peeraddr_len = szeof(peeraddr); getpeername(sockd, (struct sockaddr *) &peeraddr, &peeraddr_len); (4) prntf("indrzzo del peer: ndrzzo IP %s, porta %d\n", net_ntop(af_inet, &peeraddr.sn_addr, buff, szeof(buff)), ntohs(peeraddr.sn_port)); (5) f( (n = read(sockd, recvlne, MAXLINE)) < 0 ) err_sys("errore n read"); recvlne[n] = 0; prntf("%s\n", recvlne); ext(0); [delmal@wonderland RETI]$./sockname_clent Indrzzo locale: ndrzzo IP , porta Indrzzo del peer: ndrzzo IP , porta 9877 prova d utlzzo d getsockname() 4. ottene l'ndrzzo IP ed l numero d porta del peer nella connessone dentfcata da sockd ndrzzo del socket d connessone 5. stampa ndrzzo IP e porta del peer Output delle applcazon [posedon] 7:35pm~/RETI ->./sockname_server Socket d ascolto: Indrzzo IP , porta 9877 Socket d connessone: Indrzzo IP , porta 9877 Indrzzo del peer: ndrzzo IP , porta [delmal@wonderland RETI]$./sockname_clent Indrzzo locale: ndrzzo IP , porta Indrzzo del peer: ndrzzo IP , porta 9877 prova d utlzzo d getsockname() clent ndrzzo IP e porta scelte dal S.O. server socket d ascolto ha ndrzzo socket d connessone usa la stessa porta ma con ndrzzo
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
DettagliGestione dei segnali. Dott. Delfina Malandrino. p//ssd s / d
a.a 2007/2008 Gestone de segnal 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 Gestone de segnal I segnal sono
DettagliStruttura degli indirizzi dei socket
A.A. 2007/2008 API socket d Berkeley delmal@da.unsa.t http://ss.da.unsa.t/~delmal s s / d Dpartmento d Informatca ed Applcazon R.M. Capocell Unverstà degl Stud d Salerno Struttura degl ndrzz de socket
DettagliSERVER 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)
DettagliLaboratorio 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
DettagliInterazione 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
DettagliSviluppo 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
DettagliProgettazione 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
DettagliProgettazione 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
Dettaglifunzione 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
DettagliLaboratorio 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
Dettagligetsockname() e getpeername() Formato dei dati - server Esempio getsockname() server (2)
Formato dei dati La comunicazione deve tener conto della diversa rappresentazione dei dati Rappresentazione in Big Endian e Little Endian Soluzione usata dai socket: network byte order (Big Endian) Due
Dettagli(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,
DettagliEsempio 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
Dettaglirequest 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
DettagliFunzioni 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
Dettaglifunzione 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
DettagliFunzioni 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
DettagliProgrammazione 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
DettagliINGEGNERIA DEL WEB. VinX
INGEGNERIA DEL WEB VinX Indice 1 Programmazione di applicazioni di rete 1 1.1 Applicazioni di rete........................................ 1 1.2 Modello Client/Server......................................
Dettagli*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,
DettagliProblema. 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
DettagliLaboratorio 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
DettagliIntroduzione 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
DettagliParametri valore-risultatorisultato
Formato dei dati Programmazione di applicazioni di rete con socket - parte 2 La comunicazione deve tener conto della diversa rappresentazione dei dati Rappresentazione in Big Endian e Little Endian Soluzione
DettagliProgrammazione di applicazioni di rete con socket - parte 2
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Programmazione di applicazioni di rete con socket - parte 2 Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2008/09 Formato
DettagliCreare 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
DettagliSERVER 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
DettagliP3-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
DettagliProgrammazione 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
DettagliEsempio 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
DettagliSocket per TCP: Fondamenti
Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette
DettagliLaboratorio 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.
DettagliEsercitazione [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
DettagliUna 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
DettagliSocket. 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
DettagliCorso di Reti di Calcolatori T
Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 3 (svolta) Socket C senza e con connessione Luca Foschini Anno accademico 2017/2018 Esercitazione 3 1
DettagliSocket. 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
DettagliIPC 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
DettagliLinguaggio C. funzioni e procedure. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Lnguaggo C funzon e procedure Unverstà degl Stud d Bresca Docente: Massmlano Gacomn Un esempo Acqusre dall utente un numero ntero n, rpetendo l acquszone se è prmo. Successvamente, stampare 5 numer prm
DettagliCOMUNICAZIONE 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
DettagliProgrammazione 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
DettagliTimeout. 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
DettagliInterazione (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
DettagliSocket 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
DettagliReti (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
DettagliEsercitazione 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
DettagliLABORATORIO 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
DettagliSistemi 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
DettagliEsercitazione 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
DettagliCreare 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
DettagliTimeout. 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
Dettagliprogrammazione 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
DettagliLaboratorio 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
DettagliI 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
DettagliProgram 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
DettagliCode a priorità (Heap) Definizione Heapify (mantenimento coda a priorità) Costruire un Heap Insert, Maximum e Extract-Max
Code a prortà (Heap) Defnzone Heapfy (mantenmento coda a prortà) Costrure un Heap Insert, Maxmum e Extract-Max Coda a prortà (Heap) Una coda a prortà può essere rappresentato da un albero bnaro completo.
DettagliEsercitazione 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
Dettaglirsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it
Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 maximiliano.marchesi@studenti.unipr.it Sommario Introduzione..................................................................................
DettagliSocket 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
DettagliPRATICA - Lezione 1. Autunno PRATICA (Lez. 1)
PRATICA - Lezione! " # $ &%' ( "*)+,.-/ * "* )+ 2 3547698:47;!
DettagliDATAGRAM 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
DettagliApplicazione Client-Server con Server Concorrente Specifiche
Applicazione Client-Server con Server Concorrente Specifiche Il progetto consiste nello sviluppo di un'applicazione client/server. Client e server devono comunicare tramite socket TCP.. Il server deve
DettagliL 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
DettagliSocket TCP. prima parte
Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd
DettagliSocket per TCP: Fondamenti
Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette
DettagliInter-process communication: socket
Le Socket Inter-process communication: socket Abbiamo visti alcune tipologie di Inter-process communication: Anonymous pipes FIFOs o named pipes Le socket di comunicazione si pongono nell'ipc per realizzare:
DettagliSocket 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(...)
DettagliReti 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
DettagliI 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
DettagliSC per Inter Process Comminication. Comunicazione fra macchine diverse: socket
SC per Inter Process Comminication Comunicazione fra macchine diverse: socket 1 Sockets File speciali utilizzati per connettere due o più processi con un canale di comunicazione i processi possono risiedere
DettagliBasi di network programming sotto Unix/Linux (draft version) Claudio Piciarelli
Basi di network programming sotto Unix/Linux (draft version) Claudio Piciarelli 20 dicembre 2004 ii Indice 1 Introduzione 1 1.1 Notazioni e terminologia..................................... 1 2 Un po di
DettagliScrittura 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
DettagliParadigma 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
DettagliUn 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
DettagliAllora v = v2 =
Problema: a partre da due sequenze ordnate v1 e v2 d element voglamo costrurne una ordnata v con tutt gl element d v1 e v2 Algortmo rcorsvo: Se le due sequenze contengono element confronta prm due element
DettagliTECN.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
DettagliEsercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC)- - 1 Parte -
Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012 - Comunicazione Tra Processi (IPC)- - 1 Parte - 1 Sommario Comunicazione tra processi sulla stessa macchina: fifo (qualunque insieme di processi)
DettagliGuida 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
DettagliL 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
DettagliScrittura 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
DettagliSocket per TCP: Fondamenti
Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette
DettagliRet 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
DettagliEsempi 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
DettagliSocket per TCP: Fondamenti
Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette
DettagliESERCITAZIONE 2 RIPASSO. EX. 1 Un processo padre (parent) crea due processi figli (children) e attende la loro terminazione. Se, e solo se,...
ESERCITAZIONE DEL 23 MARZO 2002 ESERCITAZIONE 2 RIPASSO EX. 1 Un processo padre (parent) crea due processi figli (children) e attende la loro terminazione. Se, e solo se,. EX. 2 Un server di rete attende
DettagliLa 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
Dettagliunsigned 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=
DettagliAcknowledgment: 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
DettagliLe Opzioni per i Socket
Advanced TCP Socket Le Opzioni per i Socket Le opzioni per i socket sono controllate mediante tre tipi di primitive: 1) le funzioni getsockopt() e setsockopt(), che permettono di configurare alcune caratteristiche
DettagliIntroduzione 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
DettagliB - ESERCIZI: IP e TCP:
Unverstà d Bergamo Dpartmento d Ingegnera dell Informazone e Metod Matematc B - ESERCIZI: IP e TCP: F. Martgnon Archtetture e Protocoll per Internet Eserczo b. S consder l collegamento n fgura A C =8 kbt/s
DettagliCorso 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
DettagliOSOR. Obiettivi. Cooperazione fra processi. Introduzione alla programmazione distribuita. Processi indipendenti. Processi Cooperanti
OSOR Introduzione alla programmazione distribuita Obiettivi Introdurre i concetti di base su programmazione distribuita Modello Client-Server Interfaccia Socket Capire come funzionano le applicazioni di
DettagliCORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 6
UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica, Elettronica e delle Telecomunicazioni a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 6 1 Socket
DettagliIl 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
DettagliC 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
DettagliReti 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
DettagliCenni 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