Struttura degli indirizzi dei socket

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Struttura degli indirizzi dei socket"

Transcript

1 A.A. 2007/2008 API socket d Berkeley s s / d Dpartmento d Informatca ed Applcazon R.M. Capocell Unverstà degl Stud d Salerno Struttura degl ndrzz de socket La maggor parte delle funzon socket rchedono un puntatore ad una socket address structure. Gl ndrzz sono mplementate come struct Sempre passate per rfermento Ogn famgla d ndrzz defnsce la propra forma d ndrzzamento e qund una sua struttura d ndrzz. sockaddr_n per TCP/IP Ogn funzone socket deve essere n grado d manpolare strutture d cascuna famgla d protocoll Problema: Come dcharare l tpo d puntatore che deve essere passato? 2 1

2 Struttura degl ndrzz de socket Le funzon socket hanno un parametro d tpo sockaddr una struct generca non rferta a nessuna famgla d ndrzz specfca Quando è stata progettata l API non esstevano puntator vod* Nella chamata serve un cast Defnta n <sys/socket.h> f( (bnd(lstend, (struct sockaddr*) &servaddr, szeof(servaddr))) < 0) err_sys("errore n bnd"); 3 La struttura generca struct sockaddr { unt8_t sa_len; sa_famly_t sa_famly; /* address famly AF_xxx */ char sa_data[14]; /* address (protocol-specfc) */ }; Tutte le funzon de socket che usano gl ndrzz sono defnte usando nel prototpo un puntatore a questa struttura per questo motvo quando s nvocano dette funzon passando l'ndrzzo d un protocollo specfco occorrerà esegure una conversone del relatvo puntatore. 4 2

3 Struttura degl ndrzz de socket IPv4 struct sockaddr_n { sa_famly_t sn_famly; /* address famly AF_INET */ n_port_t sn_port; /* port n network byte order (2 bytes)*/ struct n_addr sn_addr; /* nternet address (4 bytes)*/ char sn_zero[8]; /*non usato*/ }; /* Internet address. */ struct n_addr { n_addr_t s_addr; /* 32 bt IPv4 - address n network byte order */ }; 5 Struttura degl ndrzz de socket Il membro sn_famly deve essere sempre mpostato sn port specfca l numero d porta Il membro sn_addr contene l ndrzzo nternet dell altro capo della comuncazone. sn_zero serve a far s che la grandezza della struttura s almeno 16 byte. Indrzz e numer d porta devono essere specfcat n network order bt ordnat n formato bg endan necessare apposte funzon d conversone per mantenere la portabltà del codce. 6 3

4 Tp d Dat d sockaddr Lo standard POSIX1.g prevede seguent tp d dat nt8_t, t nt16_t, t nt32_t t (nter con segno) unt8_t, unt16_t, unt32_t (nter senza segno) sa_famly_t (famgla d ndrzz) socklen_t (n genere unt32_t) n_addr_t (n genere unt32_t) n_port_t (n genere unt16_t) Le defnzon sono contenute n sys/types.h, sys/socket.h e netnet/n.h Gl standard POSIX defnscono l kernel de sstem UNIX Lo standard POSIX.1g ha defnto l supporto d UNIX per l networkng 7 Argoment valore-rsultato Una struttura ndrzz socket vene sempre passata per rfermento Passato un puntatore alla struttura + la lunghezza della struttura Alcune funzon: bnd, connect, and sendto passano la struttura ndrzz dal processo al kernel Uno de parametr è l puntatore alla struttura, un altro la lunghezza della struttura stessa f ( connect(sd, (struct sockaddr *) &servaddr, szeof(servaddr)) < 0 ) Il kernel sa esattamente quant dat copare dal processo al kernel stesso 8 4

5 Argoment valore-rsultato Altre funzon: accept, recvfrom, getsockname, getpeername passano la struttura ndrzz dal kernel e al processo. Uno de parametr è l puntatore alla struttura, un altro è l puntatore ad un ntero che contene la tagla della struttura stessa f (accept(ssd, (struct sockaddr *)&clent_addr, &length) < 0) Il motvo per cu la tagla vara da ntero a puntatore ad ntero è che la tagla è: Un valore quando la funzone è nvocata Dce al kernel la tagla della struttura coscché non possa scrvere oltre la fne della struttura quando la va a rempre Un rsultato quando la funzone rtorna Dce al processo quante nformazon l kernel ha memorzzato nella struttura 9 Rappresentazone degl Inter Consderamo un ntero a 16 bt Esstono 2 mod per memorzzare questo ntero n memora BIG-ENDIAN è l'ordne per cu la parte pù sgnfcatva va memorzzata per prma (all'ndrzzo pù basso d memora). LITTLE-ENDIAN è l'ordne per cu la parte meno sgnfcatva va memorzzata per prma (all'ndrzzo pù basso d memora). bg-endan Address A+1 Parte pù sgnfcatva Parte pù sgnfcatva Address A Parte meno sgnfcatva MSB 16-bt value LSB Parte meno sgnfcatva Address A Address A+1 Increasng memory lttle-endanendan Increasng memory 10 5

6 Rappresentazone degl Inter Tutt protocoll d TCP/IP assumono che gl nter sano trasmess n network byte order Prma l byte pù sgnfcatvo (bg endan) Prma d scrvere un ntero sulla connessone bsogna convertrlo n network byte order Prma d leggere un ntero rcevuto dalla connessone bsogna convertrlo n host byte order Funzon d conversone (n netnet/n.h) htons (16 bt), htonl (32 bt) ntohs (16 bt), ntohl (32 bt) 11 Funzon d conversone #nclude <netnet/n.h> unt16_t htons(unt16_t host16btvalue); unt32_t htonl(unt32_t host32btvalue); unt16_t ntohs(unt16_t net16btvalue); unt32_t ntohl(unt32_t net32btvalue); Returns: Valore n network byte order Returns: Valore n host byte order 12 6

7 Funzon d Manpolazone de Byte Molte operazon su socket rchedono d operare su sequenze d byte strngs.h contene vod bzero(vod* dest, sze_t n); vod bcopy(const vod* src, vod* dest, sze_t n); nt bcmp(const vod* ptr1, const vod* ptr2, sze_t n); obsolete per comodtà s usa solo bzero() per nzalzzare a 0 delle strutture 13 Funzon d Manpolazone de Byte vod bcopy(constvod*src, vod*dest, sze_t n); copa nbytes bytes dalla locazone src alla locazone dest. vod bzero(vod*dest, sze_t n); mposta a zero nbytes a partre dalla locazone dest. bzero(&servaddr,szeof(servaddr)); nt bcmp(const vod* ptr1, const vod* ptr2, sze_t n); confronta nbytes bytes a partre dalle locazon ptr1 e ptr2, resttuendo 0 se ess sono dentc, altrment un valore dverso da

8 Funzon d Manpolazone de Byte strng.h contene funzon analoghe ANSI C vod* memset(vod* dest, nt c, sze_t n); vod* memcpy(vod* dest, const vod* src, sze_t n); nt memcmp(const vod* ptr1, const vod* ptr2, sze_t n); 15 Socket Endpont Endpont del socket Ogn assocazone socket è una quntupla d valor: {protocollo, ndrzzo locale, porta locale, ndrzzo remoto, porta remota} L assocazone deve essere completamente specfcata affnché la comuncazone abba luogo. 16 8

9 Gestone degl error In caso d errore le funzon API Socket: Resttuscono -1 Assegnano alla varable globale ERRNO un valore postvo Ogn valore dentfca un tpo d errore ed sgnfcat sono specfcat nel fle sys/errno.h Il valore contenuto n ERRNO s rfersce all ultma chamata d sstema effettuata. 17 Funzone socket #nclude <sys/socket.h> nt socket(nt famly, nttype,ntprotocol); Prma funzone eseguta dal clent e dal server Crea un endpont Resttusce -1 se la creazone non è ruscta l descrttore del socket se la creazone è ruscta 18 9

10 Parametr della funzone socket() nt famly specfca la famgla d protocoll da usare: AF_INET IPv4 AF_INET6 IPv6 AF_LOCAL prot. locale (clent e server sullo stesso host) altr nt type dentfca l tpo d socket SOCK_STREAM per uno stream d dat (TCP) SOCK_DGRAM per datagramm amm (UDP) SOCK_RAW per applcazon drette su IP 19 Parametr della funzone socket() nt protocol 0 per specfcare l protocollo d default ndotto dalla coppa famly e type (tranne che per SOCK_RAW) AF_INET + SOCK_STREAM determnano una trasmssone TCP (IPPROTO_TCP) AF_INET + SOCK_DGRAM determnano una trasmssone UDP (IPPROTO_UDP) 20 10

11 Funzone socket Esempo d nvocazone della funzone socket(): f ((sd = socket(af_inet, SOCK_STREAM, 0) < 0) { err_sys( error socket functon\n"); } Della quntupla, dopo la chamata socket(), resta specfcato solo l prmo campo: {protocollo, ndrzzo locale, porta locale, ndrzzo remoto, porta remota} Della quntupla, dopo la chamata socket(), resta specfcato solo l prmo 21 Funzone connect #nclude <sys/socket.h> t nt connect(nt t sd, const struct t sockaddr *servaddr, socklen_t addrlen); Permette ad un clent d aprre una connessone con l server Il SO scegle una porta effmera ed effettua una open attva La funzone termna solo dopo che la connessone è stata creata Resttusce -1 n caso d errore 0 se la connessone è stata creata 22 11

12 Parametr della funzone connect sd è l socket descrptor servaddr è un puntatore all ndrzzo dell endpont endpont vuole collegare ndrzzo IP + numero d porta puntatore d tpo sockaddr (SA) addrlen è la lunghezza n byte d servaddr In caso d errore resttusce ETIMEDOUT è scaduto l tme out del SYN ECONNREFUSED l server ha rfutato l SYN EHOSTUNREACH errore d ndrzzamento a cu c s 23 Funzone connect Esempo d nvocazone della funzone connect(): f (connect(sd, (struct sockaddr *)&servaddr, szeof(servaddr)) < 0) { err_sys("connect error\n"); } Della quntupla, dopo la chamata connect(), restano specfcat tutt camp relatv agl ndrzz: {protocollo, ndrzzo locale, porta locale, ndrzzo remoto, porta remota} 24 12

13 Funzone bnd #nclude <sys/socket.h> nt bnd(nt sd, const struct sockaddr *myaddr, socklen_t addrlen); Serve a far sapere al kernel a quale processo vanno nvat dat rcevut dalla rete Permette d assegnare uno specfco ndrzzo al socket se nonn s esegue la bnd l S.O. assegnerà nràal socket ktuna porta effmera ed uno degl ndrzz IP dell host dpende dall nterfacca utlzzata n genere eseguto solo dal server per usare una porta prefssata 25 Parametr della funzone bnd L oggetto puntato da myaddr può specfcare l ndrzzo IP l numero d porta (ndrzzo locale) Un campo non specfcato è messo a 0 Se la porta è 0 ne vene scelta una effmera Se l ndrzzo IP è INADDR_ANY (0) l server accetterà rcheste su ogn nterfacca quando rceve un segmento SYN utlzza come ndrzzo IP quello specfcato nel campo destnazone del segmento La funzone resttusce un errore se l ndrzzo non è utlzzable EADDRINUSE 26 13

14 Funzone bnd Esempo d nvocazone della funzone bnd(): struct sockaddr_n servaddr; servaddr.sn_famly = AF_INET servaddr.sn_port = htons(0); servaddr.sn_addr.s_addr = htonl(inaddr_any); f (bnd(sd, (struct sockaddr *)&servaddr, szeof(servaddr)) < 0) { err_sys("bnd error\n"); } Della quntupla, dopo la chamata bnd(), restano specfcat l secondo ed l terzo campo, coè gl estrem local della comuncazone: {protocollo, ndrzzo locale, porta locale, ndrzzo remoto, porta remota} 27 Funzone lsten #nclude <sys/socket.h> nt lsten(nt sd, nt backlog); Utlzzata per rendere un socket passvo Specfca quante connesson possono essere accettate e messe n attesa d essere servte le connesson sono accettate o rfutate dal S.O. senza nterrogare l server 28 14

15 Backlog CODA connesson accept Server completate (stato ESTABLISHED) apertura conn. completata CODA connesson ncomplete (stato SYN_RCVD) connect dal clent SYN apertura connessone Per un determnato lstenng socket l kernel mantene 2 code: Incomplete connecton queue Contene una entry per ogn SYN arrvato da un clent e per cu l server deve completare l 3-way handshake Completed connecton queue Contene una entry per ogn clent l cu 3-way handshake è stato completato 29 Funzone lsten Esempo d nvocazone della funzone lsten(): f (lsten(sd, 5) < 0) { err_sys("lsten error\n"); } 30 15

16 Funzone accept #nclude <sys/types.h> #nclude <sys/socket.h> nt accept(nt sd, struct sockaddr *claddr, socklen_t* addrlen); Permette ad un server d prendere la prma connessone completata dal backlog Se l backlog è vuoto l server rmane bloccato sulla chamata a funzone fno a quando non vene accettata una connessone Resttusce -1 n caso d errore un nuovo descrttore d socket assegnato automatcamente dal S.O. e l ndrzzo del clent la porta del nuovo descrttore è effmera 31 Socket d Ascolto e Socket Connesso Il server utlzza due socket dvers per ogn connessone con un clent l socket d ascolto (lstenng socket) è quello creato dalla funzone socket utlzzato per tutta la vta del processo n genere usato solo per accettare rcheste d connessone l socket connesso (connected socket) è quello creato dalla funzone accept usato solo per la connessone con un certo clent usato per lo scambo de dat con l clent I due socket dentfcano due connesson dstnte 32 16

17 Parametr Valore-Rsultato claddr e addrlen sono argoment valore-rsultato sono varabl passate per rfermento usate sa per passare argoment alla funzone che per rcevere de rsultat claddr contene prma l ndrzzo d sd (ndrzzo IP + porta) dopo l ndrzzo del clent (ndrzzo IP + porta) addrlen contene prma la lunghezza dell ndrzzo d sd dopo la lunghezza dell ndrzzo del clent 33 Funzone accept Esempo d nvocazone della funzone accept(): struct sockaddr_n clent_addr; nt ssd, csd, length;... f ((csd = accept(ssd, (struct sockaddr *)&clent_addr, &length) < 0) { err_sys("accept error"); } 34 17

18 Funzone close #nclude <unstd.h> nt close(nt sd); Marca l descrttore come chuso l processo non può pù utlzzare l descrttore ma la connessone non vene chusa subto TCP contnua ad utlzzare l socket trasmettendo dat che sono eventualmente nel buffer Resttusce -1 n caso d errore 0 se OK Pù process possono condvdere un descrttore un contatore mantene l numero d process assocat al descrttore la procedura d close della connessone vene avvata solo quando l contatore arrva a 0 35 Funzon d Input/Output Per leggere e scrvere su un socket s utlzzano le funzon read e wrte nt read(nt sd, char* recvlne, sze_t sze); nt wrte(nt sd, const vod* sendlne, sze_t sze); Queste chamate d sstema su un socket TCP s comportano dversamente che su un fle la funzone read può leggere meno dat d quanto rchesto non c sono dat dsponble nel buffer del socket la funzone wrte può scrvere meno dat d quanto rchesto non c è spazo dsponble nel buffer del socket le funzon devono essere chamate n un cclo 36 18

19 Funzone wrten Scrve n bytes su un socket, eseguendo un loop d scrtture fno a scrvere gl n bytes o rscontrare un errore ssze_t wrten(nt fd, const vod* vptr, sze_t n) { sze_t nleft; ssze_t nwrtten; const char* ptr; ptr = vptr; nleft = n; whle( nleft > 0 ) { (1) f( (nwrtten = wrte(fd, ptr, nleft)) <= 0 ) { (2) f( errno == EINTR ) nwrtten = 0; (3) else return(-1);} nleft -= nwrtten; ptr += nwrtten; } return(n); }; 1. nleft caratter da scrvere tera fnché nleft non dventa < 0 2. ad ogn terazone chama wrte e scrve nwrtten caratter quell dsponbl 3. controlla l rsultato d wrte se segnala errore (EINTR) non scrve nulla ma contnua se s verfca un altro errore esce 37 Funzone readn Legge n bytes da un socket, eseguendo un loop d letture fno a leggere gl n bytes o ncontrare EOF o rscontrare un errore ssze_t readn(nt fd, vod* vptr, sze_t n) { sze_t nleft; ssze_t nread; char* ptr; ptr = vptr; nleft = n; whle( nleft > 0 ) { (1) f( (nread = read(fd, ptr, nleft)) <= 0 ) { (2) f( errno == EINTR ) nread = 0; (3) else return(-1); } else f( nread == 0 ) break; nleft -= nread; ptr += nread; } return(n - nleft); }; 1. nleft caratter da leggere tera fnché nleft < 0 2. ad ogn terazone chama read e legge nread caratter quell dsponbl 3. controlla l rsultato d read se segnala errore (EINTR) non legge nulla ma contnua se s verfca un altro errore esce se legge EOF termna 38 19

20 Funzone readlne la funzone readn tera fnché non legge n valor o un EOF l applcazone non sa quant caratter deve leggere la funzone readlne legge una sequenza d caratter termnata da un newlne la funzone resta bloccata se manca l newlne ogn applcazone deve nserre un newlne alla fne d ogn messaggo scrtto sul socket per consentre al suo par d uscre dal cclo d lettura la funzone readlne utlzza una versone modfcata d read my_read legge tutt dat dsponbl e l passa a readlne uno alla volta 39 Funzon d conversone d ndrzz Conversone dal dal formato testuale (ASCII) n nter rnnn network rkbyte order r Conversone dal formato network byte order al formato ASCII 40 20

21 Conversone d ndrzz #nclude <arpa/net.h> n_addr_t net_addr(const char *strptr) Converte la strnga dall ndrzzo IP (dotted decmal, ) n network order. nt net_aton(const char *src, struct n_addr *dest) Converte la strnga dall ndrzzo IP (dotted decmal) n network order. char *net_ntoa(struct t t t n_addr addrptr) Conversone da network order n una strnga dotted decmal. 41 Conversone d ndrzz Se s vuole assegnare l ndrzzo IP alla struttura struct sockaddr_n servaddr: La funzone net_addr() converte l ndrzzo IP n un unsgned long. servaddr.sn_addr.s_addr=net_addr( ); l ndrzzo vene rtornato n Network byte Order. oppure: servaddr.sn_famly = AF_INET; servaddr.sn_port = htons(port); net_aton( , &servaddr.sn_addr) ; 42 21

22 Funzon net_pton e net_ntop Le tre funzon precedent sono lmtate solo ad ndrzz IPv4. Le due nuove funzon net_pton e net_ntop ntop che possono convertre anche gl ndrzz IPv6. Le lettere n e p sono degl mnemonc per rcordare l tpo d conversone effettuata e stanno per presentaton e numerc. Entrambe le funzon accettano l argomento af che ndca l tpo d ndrzzo e può essere soltanto AF_INET o AF_INET6. 43 Le funzon net_pton e net_ntop #nclude <sys/socket.h> nt net_pton(nt af, const char *src src, vod *addr_ptr) Converte l ndrzzo espresso tramte la strnga src nel valore numerco dell ndrzzo IP del tpo specfcato da af che vene memorzzato all ndrzzo puntato da addr_ptr. La funzone resttusce un valore negatvo se af specfca una famgla d ndrzz non valda, con errno che assume l valore EAFNOSUPPORT un valore nullo se src non rappresenta un ndrzzo valdo un valore postvo n caso d successo. net_pton(af_inet, , &servaddr.sn_addr); 44 22

23 Le funzon net_pton e net_ntop #nclude <sys/socket.h> char *net_ntop(nt t t af, const vod *addr_ptr, char *dest, sze_t len) Converte l ndrzzo dalla relatva struttura n una strnga smbolca. La funzone resttusce un puntatore non nullo alla strnga convertta n caso d successo NULL n caso d fallmento. net_ntop(af_inet, &claddr.sn_addr, buff, szeof(buff)); 45 Svluppo d applcazon d rete La lbrera basc.h L applcazone HelloWorld L applcazone daytme Iteratva con socket stream 46 23

24 basc.h /* Header fle d base per tutt gl esemp del corso */ /* Include header fle d sstema attnent alla programmazone con socket e dcharazon e defnzon comun a tutt gl esemp */ #fndef basc_h #defne basc_h /* nclude de prncpal header fle d sstema */ #nclude <sys/types.h> /* tp d dat d sstema */ #nclude <sys/socket.h> /* dcharazon funzon base su socket */ #nclude <sys/tme.h> /* tmeval{} per la select() */ #nclude <tme.h> /* tmespec{} per la pselect() */ #nclude <netnet/n.h> /* defnzon degl ndrzz de socket */ #nclude <arpa/net.h> /* funzon net(3) */ #nclude <errno.h> /* defnzone d errno */ #nclude <fcntl.h> /* utlzzato per I/O nonbloccante */ #nclude <netdb.h> /* defnzon d macro e costant attent l network */ #nclude <sgnal.h> /* defnzon d handler d segnal */ #nclude <stdo.h> /* funzon d I/O standard */ 47 basc.h #nclude <stdlb.h> /* funzon della lbrera standard */ #nclude <strng.h> /* funzon ANSI C per manpolazone d strnghe */ #nclude <sys/stat.h> th> /* for S_xxx fle mode constants t */ #nclude <sys/uo.h> /* usato per ovec{} e readv/wrtev */ #nclude <unstd.h> /* usato da sysconf */ #nclude <sys/wat.h> /* usato da wat() */ #nclude <sys/un.h> /* utlzzato per socket Unx doman */ #nclude <sys/select.h> /* defnzone d select() */ #nclude <poll.h> /* defnzone d poll() */ #nclude <strngs.h> /* funzon non ANSI C su strnghe */ #nclude <sys/octl.h> /* usato per octl */ vod err_sys(const char *,...); /* errore fatale n una system call */ vod err_qut(const char *,...); /* errore fatale non n una system call */ vod err_dump(const char *,...); /* errore fatale n una system call con dump */ vod err_ret(const char *,...); /* errore non fatale n una system call */ vod err_msg(const char *,...); /* errore non fatale non n una system call */ 48 24

25 basc.h /* dcharazon delle funzon d lettura e scrttura su uno stream socket */ ssze_t wrten(nt fd, const vod *vptr, sze_t n); ssze_t readn(nt fd, vod *vptr, sze_t n); ssze_t readlne(nt fd, vod *vptr, sze_t maxlne); ssze_t my_read(nt fd, char *ptr); /* defnzon d costant e macro d uso comune */ #defne MIN(a,b) ((a) < (b)? (a) : (b)) #defne MAX(a,b) ((a) > (b)? (a) : (b)) #defne MAXLINE 1024 #defne MAXSOCKADDR 128 #defne BUFFSIZE 8192 #defne LISTENQ 5 /* Dmensone del backlog della lsten() */ #defne SERV_PORT 9877 /* TCP and UDP clent-servers */ #defne SERV_PORT_STR "9877" /* TCP and UDP clent-servers */ #defne UNIXSTR_PATH "/tmp/unx.str" /* Unx doman stream cl-serv */ #defne UNIXDG_PATH "/tmp/unx.dg" /* Unx doman datagram cl-serv */ 49 basc.h #fndef SHUT_RD #defne SHUT_RD 0 /* shutdown n lettura */ #defne SHUT_WR 1 /* shutdown n scrttura */ #defne SHUT_RDWR 2 /* shutdown n lettura e scrttura */ #endf typedef struct sockaddr SA; #endf 50 25

26 Rappresentazon d nter 1. #nclude <stdo.h> 2. nt man(nt argc, char **argv) { 3. unon { 4. short s; 5. char c[szeof(short)]; 6. } un; 7. un.s = 0x0102; 8. prntf("byte orderng: "); 9. f (szeof(short) == 2) { 10. f ( un.c[0] == 1 && un.c[1] == 2 ) 11. prntf ("bg-endan\n"); n"); 12. else f ( un.c[0] == 2 && un.c[1] == 1 ) 13. prntf ("lttle-endan l endan\n"); n"); 14. else 15. prntf("unknown\n"); n"); 16. } 17. else 18. prntf("sze of short: %d.\n",szeof(short)); 19. ext(0); 20. } byteorder.c 51 Applcazone HelloWorld: Server 1. #nclude "basc.h" nt socket(nt famly, nt type, nt protocol); 2. man(nt argc, char **argv) 3. { 4. nt sockfd, newsockfd, sock_addr_len,n; 5. char buff[maxline]="hello World"; struct sockaddr_n servaddr, claddr; f ( (sockfd = socket(af_inet, SOCK_STREAM,0)) < 0 ) 10. err_sys("socket error"); servaddr.sn_famly = AF_INET; 13. servaddr.sn_addr.s_addr = htonl(inaddr_any); 14. servaddr.sn_port = htons( SERV_PORT ); 52 26

27 Applcazone HelloWorld: Server nt bnd(nt sd, const struct sockaddr *myaddr, socklen_t addrlen); nt lsten(nt sd, nt backlog); nt accept(nt sd, strucy sockaddr *claddr, socklen_t* addrlen); 15. f (bnd( sockfd, (struct sockaddr *) &servaddr, szeof(servaddr)) <0 ) 16. err_sys("bnd error"); 17. f ( lsten(sockfd,listenq) <0) 18. err_sys("lster error"); 19. whle(1){ 20. sock_addr_len=szeof(struct sockaddr_n); 21. f ( (newsockfd=accept( sockfd, (struct sockaddr *) &claddr, &sock_addr_len)) <0 ) 22. err_sys("accept error\n"); 23. prntf("dat clent: %s\n",net_ntoa(claddr.sn_addr)); 53 Applcazone HelloWorld: Server 27. f( (n=wrte(newsockfd,buff,strlen(buff)))!=strlen(buff)) 28. err_sys("wrte error"); 29. close(newsockfd); 30. } 31. close(sockfd); 32. } nt wrte(nt sd, const vod* sendlne, sze_t sze); nt close(nt sd); 54 27

28 Applcazone HelloWorld: Clent 1. #nclude "basc.h" 2. man(nt argc, char *argv[]) nt socket(nt famly, nt type, nt protocol); 3. { 4. nt sockfd,n; 5. struct sockaddr_n servaddr; 6. char buff[maxline]; 7. f(argc!=2) 8. err_qut("usage: %s <IP address>\n",argv[0]); 9. f ( (sockfd = socket(af_inet, SOCK_STREAM,0)) < 0 ) 10. err_sys("socket error"); servaddr.sn_famly = AF_INET; 13. servaddr.sn_addr.s_addr=net_addr(argv[1]); 14. servaddr.sn_port = htons(serv_port); 55 Applcazone HelloWorld: Clent nt connect(nt sd, const struct sockaddr *servaddr, socklen_t addrlen); 15. f(connect(sockfd, (struct sockaddr *) &servaddr, szeof(servaddr)) <0) 16. err_sys("connect error"); 17. whle ( (n = read(sockfd, buff, MAXLINE)) > 0 ) { 18. buff[n] = 0; 19. f (fputs(buff, stdout) == EOF) 20. err_sys("errore n fputs"); 21. } 22. f (n < 0) prntf("errore n read"); 23. ext(0); 24. } 56 28

29 Applcazone daytme teratva Il clent nterroga l server per ottenere la data e l oraro e stampa l nformazone su stdout Il server ottene l nformazone dal SO e la manda al clent 57 Applcazone daytme: server 1. #nclude "basc.h" 2. nt man(nt argc, char **argv){ 3. nt lstensd, connsd; 4. struct sockaddr_n servaddr; 5. char buff[maxline]; 6. tme_t tcks; 7. f( (lstensd = socket(af_inet, SOCK_STREAM, 0)) < 0) /* crea socket */ 8. err_sys("errore n socket"); 9. bzero(&servaddr, szeof(servaddr)); 10. servaddr.sn_famly = AF_INET; 11. servaddr.sn_addr.s_addr = htonl(inaddr_any); 12. servaddr.sn_port = htons(serv_port); 13. f( (bnd(lstensd, (SA *) &servaddr, szeof(servaddr))) < 0) err_sys("errore n bnd"); 58 29

30 Applcazone daytme: server 15. f( lsten(lstensd, LISTENQ) < 0 ) 16. err_sys("errore n lsten"); /* trasforma l socket n passvo */ 15. for ( ; ; ) { 16. f( (connsd = accept(lstensd, (SA *) NULL, NULL)) < 0) 17. err_sys("errore n accept"); /* accetta una connessone con un clent */ 15. tcks = tme(null); /* legge l'oraro con la system call tme */ 16. snprntf(buff, szeof(buff), "%.24s\r\n", ctme(&tcks)); /* scrve n buff l'oraro nel formato ottenuto da ctme. snprntf mpedsce l'owerflow del buffer. */ 59 Applcazone daytme: server 17. f( wrte(connsd, buff, strlen(buff))!= strlen(buff) ) 18. err_sys("errore n wrte"); 19. /* scrve sul socket d connessone l contenuto d buff */ f( close(connsd) == -1 ) /* chude la connessone */ 22. err_sys("errore n close"); 23. } 24. } 60 30

31 Applcazone daytme: clent 1. #nclude "basc.h" /* assegna l'ndrzzo del server prendendolo dalla rga d comando. L'ndrzzo è una strnga e deve 2. nt man(nt argc, char **argv){ essere convertto n ntero n network byte order. */ 3. nt sockd, n; 4. char recvlne[maxline + 1]; 5. struct sockaddr_n servaddr; 6. f ( argc!= 2 ) /* controlla numero degl argoment */ 7. err_qut("utlzzo: daytme_t_clent <IPaddress>"); 8. f ( (sockd = socket(af_inet, SOCK_STREAM, 0)) < 0 ) 9. err_sys("errore n socket"); 10. bzero(&servaddr, szeof(servaddr)); /* azzera servaddr */ 11. servaddr.sn_famly = AF_INET; /* assegna l tpo d ndrzzo */ 12. servaddr.sn_port = htons(serv_port); /* assegna la porta del server */ 13. servaddr.sn_addr.s_addr=net_addr(argv[1]); 61 Applcazone daytme: clent 14. f ( connect(sockd, (struct sockaddr *) &servaddr, szeof(servaddr)) < 0 ) 15. err_sys("errore n connect"); /* apre la connessone con l server */ 14. whle ( (n = read(sockd, recvlne, MAXLINE)) > 0 ) { /* legge dal socket fno a quando non trova l'eof */ 15. recvlne[n] = 0; /* aggunge l carattere d termnazone */ 16. f (fputs(recvlne, stdout) == EOF) err_sys("errore n fputs"); /* stampa l contenuto d recvlne sullo standard output */ 17. } 18. f (n < 0) 19. err_sys("errore n read"); 20. ext(0); 21. } 62 31

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

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

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

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

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

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

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

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

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

Socket per TCP: Fondamenti

Socket 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

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

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

Inter-process communication: socket

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

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

SC per Inter Process Comminication. Comunicazione fra macchine diverse: socket

SC 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

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

Metodi e Modelli per l Ottimizzazione Combinatoria Progetto: Metodo di soluzione basato su generazione di colonne

Metodi e Modelli per l Ottimizzazione Combinatoria Progetto: Metodo di soluzione basato su generazione di colonne Metod e Modell per l Ottmzzazone Combnatora Progetto: Metodo d soluzone basato su generazone d colonne Lug De Govann Vene presentato un modello alternatvo per l problema della turnazone delle farmace che

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

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

PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE. (Metodo delle Osservazioni Indirette) - 1 -

PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE. (Metodo delle Osservazioni Indirette) - 1 - PROCEDURA INFORMATIZZATA PER LA COMPENSAZIONE DELLE RETI DI LIVELLAZIONE (Metodo delle Osservazon Indrette) - - SPECIFICHE DI CALCOLO Procedura software per la compensazone d una rete d lvellazone collegata

Dettagli

Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni:

Analisi ammortizzata. Illustriamo il metodo con due esempi. operazioni su di una pila Sia P una pila di interi con le solite operazioni: Anals ammortzzata Anals ammortzzata S consdera l tempo rchesto per esegure, nel caso pessmo, una ntera sequenza d operazon. Se le operazon costose sono relatvamente meno frequent allora l costo rchesto

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

Manuale di istruzioni Manual de Instruções Millimar C1208 /C 1216

Manuale di istruzioni Manual de Instruções Millimar C1208 /C 1216 Manuale d struzon Manual de Instruções Mllmar C1208 /C 1216 Mahr GmbH Carl-Mahr-Str. 1 D-37073 Göttngen Telefon +49 551 7073-0 Fax +49 551 Cod. ord. Ultmo aggornamento Versone 3757474 15.02.2007 Valda

Dettagli

RETI TELEMATICHE Lucidi delle Lezioni Capitolo VII

RETI TELEMATICHE Lucidi delle Lezioni Capitolo VII Prof. Guseppe F. Ross E-mal: guseppe.ross@unpv.t Homepage: http://www.unpv.t/retcal/home.html UNIVERSITA' DEGLI STUDI DI PAVIA Facoltà d Ingegnera A.A. 2011/12 - I Semestre - Sede PV RETI TELEMATICHE Lucd

Dettagli

INGEGNERIA DEL WEB. VinX

INGEGNERIA 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

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

Le Opzioni per i Socket

Le 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

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

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it

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

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

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

Dettagli

Basi di network programming sotto Unix/Linux (draft version) Claudio Piciarelli

Basi 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

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

STATISTICA DESCRITTIVA CON EXCEL

STATISTICA DESCRITTIVA CON EXCEL STATISTICA DESCRITTIVA CON EXCEL Corso d CPS - II parte: Statstca Laurea n Informatca Sstem e Ret 2004-2005 1 Obettv della lezone Introduzone all uso d EXCEL Statstca descrttva Utlzzo dello strumento:

Dettagli

La tua area riservata Organizzazione Semplicità Efficienza

La tua area riservata Organizzazione Semplicità Efficienza Rev. 07/2012 La tua area rservata Organzzazone Semplctà Effcenza www.vstos.t La tua area rservata 1 MyVstos MyVstos è la pattaforma nformatca rservata a rvendtor Vstos che consente d verfcare la dsponbltà

Dettagli

Ottimizzazione nella gestione dei progetti Capitolo 6 Project Scheduling con vincoli sulle risorse CARLO MANNINO

Ottimizzazione nella gestione dei progetti Capitolo 6 Project Scheduling con vincoli sulle risorse CARLO MANNINO Ottmzzazone nella gtone de progett Captolo 6 Project Schedulng con vncol sulle rsorse CARLO MANNINO Unverstà d Roma La Sapenza Dpartmento d Informatca e Sstemstca 1 Rsorse Ogn attvtà rchede rsorse per

Dettagli

Opzioni del Socket. Socket Options. Opzioni di Livello Socket. Livello delle Opzioni

Opzioni del Socket. Socket Options. Opzioni di Livello Socket. Livello delle Opzioni a.a. 2003/04 Opzioni del Socket Socket Options Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1 Ogni socket

Dettagli

Calcolo delle Probabilità

Calcolo delle Probabilità alcolo delle Probabltà Quanto è possble un esto? La verosmglanza d un esto è quantfcata da un numero compreso tra 0 e. n partcolare, 0 ndca che l esto non s verfca e ndca che l esto s verfca senza dubbo.

Dettagli

Programmazione dei socket di rete in GNU/Linux

Programmazione dei socket di rete in GNU/Linux Programmazione dei socket di rete in GNU/Linux Fulvio Ferroni fulvioferroni@teletu.it 2006.09.21 Copyright Fulvio Ferroni fulvioferroni@teletu.it Via Longarone, 6-31030 - Casier (TV) Le informazioni contenute

Dettagli

Corso di Statistica (canale P-Z) A.A. 2009/10 Prof.ssa P. Vicard

Corso di Statistica (canale P-Z) A.A. 2009/10 Prof.ssa P. Vicard Corso d Statstca (canale P-Z) A.A. 2009/0 Prof.ssa P. Vcard VALORI MEDI Introduzone Con le dstrbuzon e le rappresentazon grafche abbamo effettuato le prme sntes de dat. E propro osservando degl stogramm

Dettagli

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri

La rappresentazione dei numeri. La rappresentazione dei numeri. Aritmetica dei calcolatori. La rappresentazione dei numeri Artmetca de calcolator Rappresentazone de numer natural e relatv Addzone e sommator: : a propagazone d rporto, veloce, con segno Moltplcazone e moltplcator: senza segno, con segno e algortmo d Booth Rappresentazone

Dettagli

Trigger di Schmitt. e +V t

Trigger di Schmitt. e +V t CORSO DI LABORATORIO DI OTTICA ED ELETTRONICA Scopo dell esperenza è valutare l ampezza dell steres d un trgger d Schmtt al varare della frequenza e dell ampezza del segnale d ngresso e confrontarla con

Dettagli

Soluzioni per lo scarico dati da tachigrafo innovativi e facili da usare. http://dtco.it

Soluzioni per lo scarico dati da tachigrafo innovativi e facili da usare. http://dtco.it Soluzon per lo scarco dat da tachgrafo nnovatv e facl da usare http://dtco.t Downloadkey II Moble Card Reader Card Reader Downloadtermnal DLD Short Range and DLD Wde Range Qual soluzon ho a dsposzone per

Dettagli

Il livello di Trasporto del TCP/IP

Il livello di Trasporto del TCP/IP Il livello di Trasporto del TCP/IP Il compito del livello transport (livello 4) è di fornire un trasporto efficace dall'host di origine a quello di destinazione, indipendentemente dalla rete utilizzata.

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

InfoCenter Product A PLM Application

InfoCenter Product A PLM Application genes d un fra o Gestone de crcolazone dell'nformazone sa crcoscrtta entro Pdetermnat ambt settoral. L'ntegrazone de sstem e de odpartment azendal rchede nuove modaltà operatve, nuove t competenze e nuov

Dettagli

Variabili statistiche - Sommario

Variabili statistiche - Sommario Varabl statstche - Sommaro Defnzon prelmnar Statstca descrttva Msure della tendenza centrale e della dspersone d un campone Introduzone La varable statstca rappresenta rsultat d un anals effettuata su

Dettagli

Guida di Beej alla Programmazione di Rete

Guida di Beej alla Programmazione di Rete Guida di Beej alla Programmazione di Rete Usando Socket Internet Brian "Beej Jorgensen" Hall beej@beej.us Versione 2.4.5 5 Agosto 2007 Copyright 2007 Brian "Beej Jorgensen" Hall Traduzione di Fabrizio

Dettagli

Università degli Studi di Urbino Facoltà di Economia

Università degli Studi di Urbino Facoltà di Economia Unverstà degl Stud d Urbno Facoltà d Economa Lezon d Statstca Descrttva svolte durante la prma parte del corso d corso d Statstca / Statstca I A.A. 004/05 a cura d: F. Bartolucc Lez. 8/0/04 Statstca descrttva

Dettagli

Introduzione al Machine Learning

Introduzione al Machine Learning Introduzone al Machne Learnng Note dal corso d Machne Learnng Corso d Laurea Magstrale n Informatca aa 2010-2011 Prof Gorgo Gambos Unverstà degl Stud d Roma Tor Vergata 2 Queste note dervano da una selezone

Dettagli

Gigaset SX353isdn/SX303isdn

Gigaset SX353isdn/SX303isdn s Semens Aktengesellschaft, ssued by Semens Communcatons Hadenauplatz 1 D-81667 Munch Semens AG 2005 All rghts reserved. Subject to avalablty. Rghts of modfcaton reserved. Semens Aktengesellschaft www.semens.com/ggaset

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

Moduli su un dominio a ideali principali Maurizio Cornalba versione 15/5/2013

Moduli su un dominio a ideali principali Maurizio Cornalba versione 15/5/2013 Modul su un domno a deal prncpal Maurzo Cornalba versone 15/5/2013 Sa A un anello commutatvo con 1. Indchamo con A k l modulo somma dretta d k cope d A. Un A-modulo fntamente generato M s dce lbero se

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

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

Capitolo 7. La «sintesi neoclassica» e il modello IS-LM. 2. La curva IS

Capitolo 7. La «sintesi neoclassica» e il modello IS-LM. 2. La curva IS Captolo 7 1. Il modello IS-LM La «sntes neoclassca» e l modello IS-LM Defnzone: ndvdua tutte le combnazon d reddto e saggo d nteresse per le qual l mercato de ben (curva IS) e l mercato della moneta (curva

Dettagli

FORMAZIONE ALPHAITALIA

FORMAZIONE ALPHAITALIA ALPHAITALIA PAG. 1 DI 13 FORMAZIONE ALPHAITALIA IL SISTEMA DI GESTIONE PER LA QUALITA Quadro ntroduttvo ALPHAITALIA PAG. 2 DI 13 1. DEFINIZIONI QUALITA Grado n cu un nseme d caratterstche ntrnseche soddsfa

Dettagli

Architettura e servizi Internet

Architettura e servizi Internet Architettura e servizi Internet Laboratorio di Sistemi Operativi Corso di Laurea in Informatica Università degli Studi dell'aquila A.A. 2011/2012 Romina Eramo materiale tratto da: Fazio Vincenzo e-mail:

Dettagli

Controllo e scheduling delle operazioni. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Controllo e scheduling delle operazioni. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Controllo e schedulng delle operazon Paolo Dett Dpartmento d Ingegnera dell Informazone Unverstà d Sena Organzzazone della produzone PRODOTTO che cosa ch ORGANIZZAZIONE PROCESSO come FLUSSO DI PRODUZIONE

Dettagli

Sistemi e Servizi di TLC. Lezione N. 9

Sistemi e Servizi di TLC. Lezione N. 9 Sstem e Servz d TLC Lezone N. 9 Multmeda Networkng 24 Novembre 2005 (2h) Applcazon multmedal n rete Caratterstche fondamental Tpcamente sono partcolarmente sensbl al rtardo (delay senstve) Sono tollerant

Dettagli

Induzione elettromagnetica

Induzione elettromagnetica Induzone elettromagnetca L esperenza d Faraday L'effetto d produzone d corrente elettrca n un crcuto prvo d generatore d tensone fu scoperto dal fsco nglese Mchael Faraday nel 83. Egl studò la relazone

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

Studio grafico-analitico di una funzioni reale in una variabile reale

Studio grafico-analitico di una funzioni reale in una variabile reale Studo grafco-analtco d una funzon reale n una varable reale f : R R a = f ( ) n Sequenza de pass In pratca 1 Stablre l tpo d funzone da studare es. f ( ) Determnare l domno D (o campo d esstenza) della

Dettagli

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

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Reti di Calcolatori - Laboratorio. Lezione 7. Gennaro Oliva

Reti di Calcolatori - Laboratorio. Lezione 7. Gennaro Oliva Reti di Calcolatori - Laboratorio Lezione 7 Gennaro Oliva Opzioni di socket Ogni socket aperto ha un insieme di opzioni associate che ne determinano il comportamento Distinguiamo due tipi: opzioni binarie

Dettagli

Uso di sniffer ed intercettazione del traffico IP

Uso di sniffer ed intercettazione del traffico IP Uso di sniffer ed intercettazione del traffico IP Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy

Dettagli

Questo è il secondo di una serie di articoli, di

Questo è il secondo di una serie di articoli, di DENTRO LA SCATOLA Rubrca a cura d Fabo A. Schreber Il Consglo Scentfco della rvsta ha pensato d attuare un nzatva culturalmente utle presentando n ogn numero d Mondo Dgtale un argomento fondante per l

Dettagli

Dipartimento di Elettronica Informatica e Sistemistica Università di Bologna. Sistemi radiomobili cellulari

Dipartimento di Elettronica Informatica e Sistemistica Università di Bologna. Sistemi radiomobili cellulari Dpartmento d Elettronca Unverstà d Bologna Sstem radomobl cellular Le comuncazon radomobl Satellte Zona 4: Globale Zona 3: Suburbana Zona 2: Urbana Zona 1: In-Buldng Macro-Cell Mcro-Cell Pco-Cell Telefono

Dettagli

Corso di laurea in Ingegneria Meccatronica. DINAMICI CA - 04 ModiStabilita

Corso di laurea in Ingegneria Meccatronica. DINAMICI CA - 04 ModiStabilita Automaton Robotcs and System CONTROL Unverstà degl Stud d Modena e Reggo Emla Corso d laurea n Ingegnera Meccatronca MODI E STABILITA DEI SISTEMI DINAMICI CA - 04 ModStablta Cesare Fantuzz (cesare.fantuzz@unmore.t)

Dettagli

Laboratorio di Programmazione in Rete

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

Condizionamento srl. catalogo generale 2007. EV Condizionamento srl

Condizionamento srl. catalogo generale 2007. EV Condizionamento srl EV Condzonamento srl EV Condzonamento srl catalogo generale 2007 Magazzno, uffco commercale e ammnstratvo: Va Lucreza Romana, 65/m 00043 Campno (RM) Italy Tel +39 6 79320072 (6 lnee r.a.) Fax +39 6 79320078

Dettagli

Indicatori di rendimento per i titoli obbligazionari

Indicatori di rendimento per i titoli obbligazionari Indcator d rendmento per ttol obblgazonar LA VALUTAZIONE DEGLI INVESTIMENTI A TASSO FISSO Per valutare la convenenza d uno strumento fnanzaro è necessaro precsare: /4 Le specfche esgenze d un nvesttore

Dettagli

Dati di tipo video. Indicizzazione e ricerca video

Dati di tipo video. Indicizzazione e ricerca video Corso d Laurea n Informatca Applcata Unverstà d Urbno Dat d tpo vdeo I dat vdeo sono generalmente rcch dal punto d vsta nformatvo. Sottottol (testo) Colonna sonora (audo parlato e/o musca) Frame (mmagn

Dettagli

L AUTORITÀ PER L ENERGIA ELETTRICA E IL GAS

L AUTORITÀ PER L ENERGIA ELETTRICA E IL GAS Delberazone 20 ottobre 2004 Approvazone delle condzon general d accesso e d erogazone del servzo d rgassfcazone d gnl predsposte dalla socetà Gnl Itala Spa (delberazone n. 184/04) L AUTORITÀ PER L ENERGIA

Dettagli

EH SmartView. Una SmartView sui rischi e sulle opportunità. Servizio di monitoraggio dell assicurazione del credito. www.eulerhermes.

EH SmartView. Una SmartView sui rischi e sulle opportunità. Servizio di monitoraggio dell assicurazione del credito. www.eulerhermes. EH SmartVew Servz Onlne d Euler Hermes Una SmartVew su rsch e sulle opportuntà Servzo d montoraggo dell asscurazone del credto www.eulerhermes.t Cos è EH SmartVew? EH SmartVew è l servzo d Euler Hermes

Dettagli

Edifici a basso consumo energetico: tra ZEB e NZEB

Edifici a basso consumo energetico: tra ZEB e NZEB Edfc a basso consumo energetco: tra ZEB e NZEB Prof. Ing. Percarlo Romagnon Dpartmento d Progettazone e Panfcazone n Ambent Compless Unverstà IUAV d Veneza Dorsoduro 2206 30123 Veneza perca@uav.t Modell

Dettagli

Apprendimento Automatico e IR: introduzione al Machine Learning

Apprendimento Automatico e IR: introduzione al Machine Learning Apprendmento Automatco e IR: ntroduzone al Machne Learnng MGRI a.a. 2007/8 A. Moschtt, R. Basl Dpartmento d Informatca Sstem e produzone Unverstà d Roma Tor Vergata mal: {moschtt,basl}@nfo.unroma2.t 1

Dettagli

Corrente elettrica e circuiti

Corrente elettrica e circuiti Corrente elettrca e crcut Generator d forza elettromotrce Intenstà d corrente Legg d Ohm esstenza e resstvtà esstenze n sere e n parallelo Effetto termco della corrente Legg d Krchhoff Corrente elettrca

Dettagli

Applicazione Client-Server con Server Concorrente Specifiche

Applicazione 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

Dettagli

Power Ethernet USB DSL. Internet. Thomson ST530v5/v6 Guida all installazione e alla configurazione

Power Ethernet USB DSL. Internet. Thomson ST530v5/v6 Guida all installazione e alla configurazione DSL Power Ethernet USB Internet Thomson ST530v5/v6 Guda all nstallazone e alla confgurazone Thomson ST530v5/v6 Guda all nstallazone e alla confgurazone Copyrght Copyrght 1999-2007 Thomson. Tutt drtt rservat.

Dettagli

Capitolo 2 - parte 3. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 2 - parte 3. Corso Reti ed Applicazioni Mauro Campanella Capitolo 2 - parte 3 Corso Reti ed Applicazioni Mauro Campanella Agenda - Domain Name Sytem (DNS) - Le socket BSD per Internet M. Campanella Corso Reti ed Applicazioni - Como 2005 Cap 2-3 pag. 2 DNS: Domain

Dettagli

INOSTRISPORTELLIASCOLTO: OSSEREVATORIO ON-LINE

INOSTRISPORTELLIASCOLTO: OSSEREVATORIO ON-LINE Assoc az one A N G E LI CENTROANTI VI OLENZA, ANTI STALKI NG EANTI STUPRO Pr oget t o:rete ANGELI BandoPer c or s nret e2013 A N G E LI Cent r oant v ol enz a, Ant s t al k ngeant s t upr o Gu da al l

Dettagli

Cenni di matematica finanziaria Unità 61

Cenni di matematica finanziaria Unità 61 Prerequst: - Rsolvere equazon algebrche d 1 grado ed equazon esponenzal Questa untà è rvolta al 2 benno del seguente ndrzzo dell Isttuto Tecnco, settore Tecnologco: Agrara, Agroalmentare e Agrondustra.

Dettagli

DECRETA. ART. 3 Il compenso per l attività di collaborazione è fissato in 1.095,00 esente dall imposta sul reddito delle persone fisiche.

DECRETA. ART. 3 Il compenso per l attività di collaborazione è fissato in 1.095,00 esente dall imposta sul reddito delle persone fisiche. BANDO PER n. 64 BORSE DI COLLABORAZIONE PER IL SUPPORTO PRESSO IL C.I.A.O. DELL UNIVERSITA DEGLI STUDI DI ROMA LA SAPIENZA NEL PERIODO DA SETTEMBRE 2010 A FINE GENNAIO 2011 000280 IL RETTORE VISTO VISTO

Dettagli

TEST D INGRESSO MATEMATICA 24/05/2011

TEST D INGRESSO MATEMATICA 24/05/2011 TEST D INGRESSO MATEMATICA // COGNOME NOME ISTITUTO COMPRENSIVO/SCUOLA MEDIA CITTA Legg attentamente. ISTRUZIONI PER LA COMPILAZIONE DEL QUESTIONARIO Inza a lavorare solo quando te lo drà l nsegnante e

Dettagli

A. AUMENTO DELLA SPESA PUBBLICA FINANZIATO ESCLUSIVAMENTE TRAMITE INDEBITAMENTO

A. AUMENTO DELLA SPESA PUBBLICA FINANZIATO ESCLUSIVAMENTE TRAMITE INDEBITAMENTO 4. SCHMI ALTRNATIVI DI FINANZIAMNTO DLLA SPSA PUBBLICA. Se l Governo decde d aumentare la Spesa Pubblca G (o Trasferment TR), allora deve anche reperre fond necessar per fnanzare questa sua maggore spesa.

Dettagli

CAPITOLO 3 Incertezza di misura Pagina 26

CAPITOLO 3 Incertezza di misura Pagina 26 CAPITOLO 3 Incertezza d msura Pagna 6 CAPITOLO 3 INCERTEZZA DI MISURA Le operazon d msurazone sono tutte nevtablmente affette da ncertezza e coè da un grado d ndetermnazone con l quale l processo d msurazone

Dettagli

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Inter Process Communication (IPC) in POSIX E.Mumolo, DEEI mumolo@units.it Pipe Cos'è un pipe? E' un canale di comunicazione che unisce due processi Caratteristiche: La più vecchia

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 6

CORSO 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

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

DATA MINING E CLUSTERING

DATA MINING E CLUSTERING Captolo 4 DATA MINING E CLUSTERING 4. Che cos'è l Data Mnng Per Data Mnng s'ntende quel processo d estrazone d conoscenza da banche dat, tramte l'applcazone d algortm che ndvduano le assocazon non mmedatamente

Dettagli

Newsletter "Lean Production" Autore: Dott. Silvio Marzo

Newsletter Lean Production Autore: Dott. Silvio Marzo Il concetto d "Produzone Snella" (Lean Producton) s sta rapdamente mponendo come uno degl strument pù modern ed effcac per garantre alle azende la flessbltà e la compettvtà che l moderno mercato rchede.

Dettagli

Il patrimonio informativo aziendale come supporto alle attività di marketing

Il patrimonio informativo aziendale come supporto alle attività di marketing Unverstà degl Stud d RomaTre - Facoltà d Economa Corso d Rcerche d Marketng Il patrmono nformatvo azendale come supporto alle attvtà d marketng ng. Stefano Cazzella stefano.cazzella@datamat.t Agenda La

Dettagli

GURU. Facebook. Gli strumenti avanzati di Facebook ADS WEBLIME

GURU. Facebook. Gli strumenti avanzati di Facebook ADS WEBLIME Facebook GURU Gl strument avanzat d Facebook ADS Un corso tecnco-pratco d approfondmento sugl strument pù avanzat d Facebook ADS. Il Corso s rvolge esclusvamente a ch gà gestsce nserzon con Facebook. Ogg

Dettagli

Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività

Metodi di Ottimizzazione mod. Modelli per la pianificazione delle attività Metod d Ottmzzazone mod. Modell er la anfcazone delle attvtà Paolo Dett Dartmento d Ingegnera dell Informazone e Scenze Matematche Unverstà d Sena Metod d Ottmzzazone mod. Modell er la anfcazone delle

Dettagli

Il Ministro delle Infrastrutture e dei Trasporti

Il Ministro delle Infrastrutture e dei Trasporti Il Mnstro delle Infrastrutture e de Trasport VISTO l decreto legslatvo 30 aprle 1992, n. 285, come da ultmo modfcato dal decreto legslatvo 18 aprle 2011, n. 59, recante Attuazone delle drettve 2006/126/CE

Dettagli

Capitolo 6 Risultati pag. 468. a) Osmannoro. b) Case Passerini c) Ponte di Maccione

Capitolo 6 Risultati pag. 468. a) Osmannoro. b) Case Passerini c) Ponte di Maccione Captolo 6 Rsultat pag. 468 a) Osmannoro b) Case Passern c) Ponte d Maccone Fgura 6.189. Confronto termovalorzzatore-sorgent dffuse per l PM 10. Il contrbuto del termovalorzzatore alle concentrazon d PM

Dettagli

Rilevatore di fumo radio fumonic 3 radio net. Infomazioni per locatari e proprietari

Rilevatore di fumo radio fumonic 3 radio net. Infomazioni per locatari e proprietari Rlevatore d fumo rado fumonc 3 rado net Infomazon per locatar e propretar Congratulazon! Nella vostra abtazone sono stat nstallat rlevator d fumo ntellgent fumonc 3 rado net. In questo modo l locatore

Dettagli