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

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

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

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

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

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

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

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

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Unità Didattica N 25. La corrente elettrica

Unità Didattica N 25. La corrente elettrica Untà Ddattca N 5 : La corrente elettrca 1 Untà Ddattca N 5 La corrente elettrca 01) Il problema dell elettrocnetca 0) La corrente elettrca ne conduttor metallc 03) Crcuto elettrco elementare 04) La prma

Dettagli

Relazione funzionale e statistica tra due variabili Modello di regressione lineare semplice Stima puntuale dei coefficienti di regressione

Relazione funzionale e statistica tra due variabili Modello di regressione lineare semplice Stima puntuale dei coefficienti di regressione 1 La Regressone Lneare (Semplce) Relazone funzonale e statstca tra due varabl Modello d regressone lneare semplce Stma puntuale de coeffcent d regressone Decomposzone della varanza Coeffcente d determnazone

Dettagli

Strutture deformabili torsionalmente: analisi in FaTA-E

Strutture deformabili torsionalmente: analisi in FaTA-E Strutture deformabl torsonalmente: anals n FaTA-E Il comportamento dsspatvo deale è negatvamente nfluenzato nel caso d strutture deformabl torsonalmente. Nelle Norme Tecnche cò vene consderato rducendo

Dettagli

Nadia Garbellini. L A TEX facile. Guida all uso

Nadia Garbellini. L A TEX facile. Guida all uso Nada Garbelln L A TEX facle Guda all uso 2010 Nada Garbelln L A TEX facle Guda all uso seconda edzone rveduta e corretta 2010 PRESENTAZIONE L amca e brava Nada Garbelln, autrce d questa bella e semplce

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

LA COMPATIBILITA tra due misure:

LA COMPATIBILITA tra due misure: LA COMPATIBILITA tra due msure: 0.4 Due msure, supposte affette da error casual, s dcono tra loro compatbl quando la loro dfferenza può essere rcondotta ad una pura fluttuazone statstca attorno al valore

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Progetto Lauree Scientifiche. La corrente elettrica

Progetto Lauree Scientifiche. La corrente elettrica Progetto Lauree Scentfche La corrente elettrca Conoscenze d base Forza elettromotrce Corrente Elettrca esstenza e resstvtà Legge d Ohm Crcut 2 Una spra d rame n equlbro elettrostatco In un crcuto semplce

Dettagli

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it Introduzione ai Device Drivers in Linux E.Mumolo, DEEI mumolo@units.it 1 Device Drivers Moduli software che gestiscono le periferiche attraverso il file system Tutte le periferiche sono viste come file

Dettagli

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

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2008 Matricole congr. 0 mod 3 File & Directory #include #include stat,fstat e lstat int stat (const char *pathname, struct stat *buf); int fstat (int

Dettagli

5. Il lavoro di un gas perfetto

5. Il lavoro di un gas perfetto 5. Il lavoro d un gas perfetto ome s esprme l energa nterna d un gas perfetto? Un gas perfetto è l sstema pù semplce che possamo mmagnare: le nterazon a dstanza fra le molecole sono così debol da essere

Dettagli

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

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute DNS: Domain Name System I name DNS Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP ( bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Routing (instradamento) in Internet Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Stub AS: istituzione piccola Multihomed AS: grande istituzione (nessun ( transito Transit AS: provider

Dettagli

UNA RASSEGNA SUI METODI DI STIMA DEL VALUE

UNA RASSEGNA SUI METODI DI STIMA DEL VALUE UNA RASSEGNA SUI METODI DI STIMA DEL VALUE at RISK (VaR) Chara Pederzol - Costanza Torrcell Dpartmento d Economa Poltca - Unverstà degl Stud d Modena e Reggo Emla Marzo 999 INDICE Introduzone. Il concetto

Dettagli

Metodologia di controllo. AUTORIMESSE (III edizione) Codice attività: 63.21.0. Indice

Metodologia di controllo. AUTORIMESSE (III edizione) Codice attività: 63.21.0. Indice Metodologa d controllo AUTORIMESSE (III edzone) Codce attvtà: 63.21.0 Indce 1. PREMESSA... 2 2. ATTIVITÀ PREPARATORIA AL CONTROLLO... 3 2.1 Interrogazon dell Anagrafe Trbutara... 3 2.2 Altre nterrogazon

Dettagli

CREAZIONE DI UN FILE

CREAZIONE DI UN FILE #include #include CREAZIONE DI UN FILE fd = creat(filename, mode); int fd, mode; char *filename; La primitiva creat crea un file, se non ne esiste uno col nome specificato, oppure

Dettagli

Leggere i dati da file

Leggere i dati da file Esempo %soluzon d una equazone d secondo grado dsp('soluzon d a^+b+c') anput('damm l coeffcente a '); bnput('damm l coeffcente b '); cnput('damm l coeffcente c '); deltab^-4*a*c; f delta0 dsp('soluzon

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette.

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

CONTO CONSUNTIVO PER L'ESERCIZIO FINANZIARIO 2012 RELAZIONE ILLUSTRATIVA DEL DIRIGENTE SCOLASTICO

CONTO CONSUNTIVO PER L'ESERCIZIO FINANZIARIO 2012 RELAZIONE ILLUSTRATIVA DEL DIRIGENTE SCOLASTICO DIREZIONE DIDATTICA DEL 4 CIRCOLO DI FORLI' Va Gorgna Saff, n.12 Tel 0543/33345 fax 0543/458861 C.F. 80004560407 CM FOEE00400B e-mal foee00400b@struzone.t - posta cert.: foee00400b@pec.struzone.t sto web:

Dettagli

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol) ARP (Address Resolution Protocol) Il routing Indirizzo IP della stazione mittente conosce: - il proprio indirizzo (IP e MAC) - la netmask (cioè la subnet) - l indirizzo IP del default gateway, il router

Dettagli

Sistemi a più processori

Sistemi a più processori Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 2007-2008 Copyright c 2000 04 Marino Miculan (miculan@dimi.uniud.it) La copia letterale e la distribuzione di questa presentazione nella sua integrità

Dettagli

Relazioni tra variabili: Correlazione e regressione lineare

Relazioni tra variabili: Correlazione e regressione lineare Dott. Raffaele Casa - Dpartmento d Produzone Vegetale Modulo d Metodologa Spermentale Febbrao 003 Relazon tra varabl: Correlazone e regressone lneare Anals d relazon tra varabl 6 Produzone d granella (kg

Dettagli

PRESENTAZIONE DI UN SMS AL GATEWAY

PRESENTAZIONE DI UN SMS AL GATEWAY Interfaccia Full Ascii Con questa interfaccia è possibile inviare i dati al Server utilizzando solo caratteri Ascii rappresentabili e solo i valori che cambiano tra un sms e l altro, mantenendo la connessione

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

Dettagli

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

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

Misura della distanza focale. di una lente convergente. Metodo di Bessel

Misura della distanza focale. di una lente convergente. Metodo di Bessel Zuccarello Francesco Laboratoro d Fsca II Msura della dstanza focale d una lente convergente Metodo d Bessel A.A. 003-004 Indce Introduzone..pag. 3 Presuppost Teorc.pag. 4 Anals de dat.pag. 8. Modo d operare...pag.

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

File e Directory. M. Guarracino - File e Directory 1

File e Directory. M. Guarracino - File e Directory 1 File e Directory M. Guarracino - File e Directory 1 File e Directory Abbiamo visto come si possono utilizzare funzioni di I/O per i file: open, read, write, lseek e close Vogliamo ora analizzare ulteriori

Dettagli

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi Prof. S.Pizzutilo Elementi

Dettagli

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero ---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero delle variabili a cui possono essere assegnati gli indirizzi

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

Modulo 11. Il livello trasporto ed il protocollo TCP Indice Pagina 1 di 14 Il livello trasporto ed il protocollo TCP Indice servizi del livello trasporto multiplexing/demultiplexing trasporto senza connesione: UDP principi del trasferimento dati affidabile trasporto

Dettagli

Dimostrazione della Formula per la determinazione del numero di divisori-test di primalità, di Giorgio Lamberti

Dimostrazione della Formula per la determinazione del numero di divisori-test di primalità, di Giorgio Lamberti Gorgo Lambert Pag. Dmostrazoe della Formula per la determazoe del umero d dvsor-test d prmaltà, d Gorgo Lambert Eugeo Amtrao aveva proposto l'dea d ua formula per calcolare l umero d dvsor d u umero, da

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Gestione di File e Directory

Gestione di File e Directory Gestione di File e Directory Duplicazione di file descriptor Un file descriptor puo' essere duplicato utilizzando: int dup (int filedes); int dup2(int filedes, int filedes2); dup restituisce un file descriptor

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

Test di comunicazione tra due LOGO! 0BA7: Master - Master

Test di comunicazione tra due LOGO! 0BA7: Master - Master Industry Test di comunicazione tra due LOGO! 0BA7: Master - Master Dispositivi utilizzati: - 2 LOGO! 0BA7 (6ED1 052-1MD00-0AB7) - Scalance X-208 LOGO! 0BA7 Client IP: 192.168.0.1 LOGO! 0BA7 Server IP:

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless La configurazione degli indirizzi IP Configurazione statica, con DHCP, e stateless 1 Parametri essenziali per una stazione IP Parametri obbligatori Indirizzo IP Netmask Parametri formalmente non obbligatori,

Dettagli

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi I semestre 03/04 Inidirizzi IP e Nomi di Dominio Domain Name System Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

Argomenti. Misure di corrente elettrica continua, di differenza di potenziale e di resistenza elettrica.

Argomenti. Misure di corrente elettrica continua, di differenza di potenziale e di resistenza elettrica. ppunt per l corso d Laboratoro d Fsca per le Scuole Superor rgoent Msure d corrente elettrca contnua, d dfferenza d potenzale e d resstenza elettrca. Struent d sura: prncp d funzonaento. Coe s effettuano

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Fondamenti di Informatica T. Linguaggio C: File

Fondamenti di Informatica T. Linguaggio C: File Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.

Dettagli

Verifica che una grammatica sia Context Free nel GrammaReader

Verifica che una grammatica sia Context Free nel GrammaReader Verifica che una grammatica sia Context Free nel GrammaReader Sommario Dispensa di Linguaggi di Programmazione Corrado Mencar Pasquale Lops In questa dispensa si descrivono alcune soluzioni per verificare

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Linguaggio C: introduzione Il linguaggio C è un linguaggio general purpose sviluppato nel 1972 da Dennis Ritchie per scrivere il sistema operativo UNIX ed alcune applicazioni per un PDP-11. Il linguaggio

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

I vettori. a b. 180 α B A. Un segmento orientato è un segmento su cui è stato fissato un verso. di percorrenza, da verso oppure da verso.

I vettori. a b. 180 α B A. Un segmento orientato è un segmento su cui è stato fissato un verso. di percorrenza, da verso oppure da verso. I vettor B Un segmento orentto è un segmento su cu è stto fssto un verso B d percorrenz, d verso oppure d verso. A A Il segmento orentto d verso è ndcto con l smolo. Due segment orentt che hnno l stess

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Lorenzo Pistocchini RICERCA DI SISTEMA ELETTRICO. Agenzia Nazionale per le Nuove Tecnologie, l Energia e lo Sviluppo Economico Sostenibile

Lorenzo Pistocchini RICERCA DI SISTEMA ELETTRICO. Agenzia Nazionale per le Nuove Tecnologie, l Energia e lo Sviluppo Economico Sostenibile Agenza Nazonale per le Nuove Tecnologe, l Energa e lo Svluppo Economco Sostenble RICERCA DI SISTEMA ELETTRICO Ottmzzazone termofludodnamca e dmensonamento d uno scambatore d calore n controcorrente con

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

Cosa è lo spoofing. Cosa è lo spoofing. Argomenti. Spoofing conosciuti. Introduzione. Corso di Sistemi di Elaborazione: Sicurezza su Reti

Cosa è lo spoofing. Cosa è lo spoofing. Argomenti. Spoofing conosciuti. Introduzione. Corso di Sistemi di Elaborazione: Sicurezza su Reti Introduzione Corso di Sistemi di Elaborazione: Sicurezza su Reti A.A. 2001/2002 Prof. A. De Santis A cura di: Angelo Celentano matr. 53/11544 Raffaele Pisapia matr. 53/10991 Mariangela Verrecchia matr.

Dettagli

Indici di Posizione. Gli indici si posizione sono misure sintetiche ( valori caratteristici ) che descrivono la tendenza centrale di un fenomeno

Indici di Posizione. Gli indici si posizione sono misure sintetiche ( valori caratteristici ) che descrivono la tendenza centrale di un fenomeno Idc d Poszoe Gl dc s poszoe soo msure stetche ( valor caratterstc ) che descrvoo la tedeza cetrale d u feomeo La tedeza cetrale è, prma approssmazoe, la modaltà della varable verso la quale cas tedoo a

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

Dettagli

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo in un verso per volta,

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Guida Rapida. Guida Rapida. Telefoni. Progetto. Collegati ai sistemi Progetto. PROMELIT Meglio comunicare meglio.

Guida Rapida. Guida Rapida. Telefoni. Progetto. Collegati ai sistemi Progetto. PROMELIT Meglio comunicare meglio. Guida Rapida Guida Rapida Progetto Telefoni N e x t Collegati ai sistemi Progetto 35 PROMELT Meglio comunicare meglio. Telefoni PROGETTO NEXT Telefono ntercomunicante PROGETTO NEXT l Vs. apparecchio ha

Dettagli

GLI ERRORI DI OUTLOOK EXPRESS

GLI ERRORI DI OUTLOOK EXPRESS Page 1 of 6 GLI ERRORI DI OUTLOOK EXPRESS 1) Impossibile inviare il messaggio. Uno dei destinatari non è stato accettato dal server. L'indirizzo di posta elettronica non accettato è "user@dominio altro

Dettagli

Lezione 9: Strutture e allocazione dinamica della memoria

Lezione 9: Strutture e allocazione dinamica della memoria Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare

Dettagli

Interazione, sincronizzazione e comunicazione tra processi

Interazione, sincronizzazione e comunicazione tra processi Interazione, sincronizzazione e comunicazione tra processi Classificazione Processi interagenti processi interagenti/indipendenti due processi sono indipendenti se l esecuzione di ognuno non è in alcun

Dettagli

ELABORAZIONE DI SEGNALI E IMMAGINI

ELABORAZIONE DI SEGNALI E IMMAGINI Fltraggo d un segnale EABORAZIOE DI SEGAI E IAGII. Bertero P. Boccacc bertero@ds.unge.t boccacc@ds.unge.t Al ne d glorare la qualtà d un segnale dgtale una tecnca d prara portanza è l ltraggo. Con l quale

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

IL LIVELLO APPLICAZIONI DNS, SNMP e SMTP

IL LIVELLO APPLICAZIONI DNS, SNMP e SMTP Reti di Calcolatori IL LIVELLO APPLICAZIONI DNS, SNMP e SMTP D. Talia RETI DI CALCOLATORI - UNICAL 6-1 Applicazioni di Rete Domain Name System (DNS) Simple Network Manag. Protocol (SNMP) Posta elettronica

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

CINEMATICA DEL CORPO RIGIDO

CINEMATICA DEL CORPO RIGIDO INEMTI DE ORPO RIGIDO o tudo della geometra degl potament de punt d un tema materale potzzato come rgdo rentra n quella parte della Meccanca laca che è la nematca. a cnematca tuda pobl movment d un corpo

Dettagli

PROCESSI CASUALI. Segnali deterministici e casuali

PROCESSI CASUALI. Segnali deterministici e casuali POCESSI CASUALI POCESSI CASUALI Segnal deermnsc e casual Un segnale () s dce DEEMIISICO se è una funzone noa d, coè se, fssao un qualunque sane d empo o, l valore ( o ) assuno dal segnale è noo con esaezza

Dettagli

Problem solving avanzato

Problem solving avanzato Problem solving avanzato Formulazione del problema Struttura dati e algoritmo Il programma 2 26 Politecnico di Torino 1 Dati in input (1/4) Sono dati due file di testo, contenenti le informazioni sulle

Dettagli

IL LINGUAGGIO C++ Configurazione di Dev-C++

IL LINGUAGGIO C++ Configurazione di Dev-C++ IL LINGUAGGIO C++ Note sull'uso di DevC++ Requisiti di sistema per Dev-C++ - Sistema operativo Microsoft Windows 95, 98, Millenium Edition, NT 4, 2000 o XP - RAM: 8 Mb (consigliati almeno 32 Mb) - CPU:

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

Il World Wide Web: nozioni introduttive

Il World Wide Web: nozioni introduttive Il World Wide Web: nozioni introduttive Dott. Nicole NOVIELLI novielli@di.uniba.it http://www.di.uniba.it/intint/people/nicole.html Cos è Internet! Acronimo di "interconnected networks" ("reti interconnesse")!

Dettagli

CIRCUITI DI IMPIEGO DEI DIODI

CIRCUITI DI IMPIEGO DEI DIODI UT D MPEGO DE DOD addrzzare ad na seonda. l crcto pù seplce, che pega l dodo coe raddrzzatore d na tensone alternata, è rappresentato n Fg.. n esso n generatore deale d tensone alternata l c valore stantaneo

Dettagli

SPOSTAMENTO SITEMANAGER DA SERVER DIREL A SERVER PROPRIETARIO

SPOSTAMENTO SITEMANAGER DA SERVER DIREL A SERVER PROPRIETARIO SPOSTAMENTO SITEMANAGER DA SERVER DIREL A SERVER PROPRIETARIO La seguente guida mostra come trasferire un SiteManager presente nel Server Gateanager al Server Proprietario; assumiamo a titolo di esempio,

Dettagli

Struttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura

Struttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura Struttura a record 2 File ad accesso diretto Il file è organizzato in record aventi tutti la stessa struttura e quindi dimensione record 0 record 1 record 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione

Dettagli

ARGOMENTO: MISURA DELLA RESISTENZA ELETTRICA CON IL METODO VOLT-AMPEROMETRICO.

ARGOMENTO: MISURA DELLA RESISTENZA ELETTRICA CON IL METODO VOLT-AMPEROMETRICO. elazoe d laboratoro d Fsca corso M-Z Laboratoro d Fsca del Dpartmeto d Fsca e Astrooma dell Uverstà degl Stud d Cataa. Scala Stefaa. AGOMENTO: MSUA DELLA ESSTENZA ELETTCA CON L METODO OLT-AMPEOMETCO. NTODUZONE:

Dettagli

Introduzione alle reti radiomobili. Meglio wireless o wired???

Introduzione alle reti radiomobili. Meglio wireless o wired??? GSM - GPRS Introduzione alle reti radiomobili Wireless Vs Wired L unica differenza sembra consistere nel mezzo trasmissivo radio, eppure: Le particolari caratteristiche del mezzo trasmissivo hanno un grosso

Dettagli

SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it)

SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it) SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it) In una rete TCP/IP, se un computer (A) deve inoltrare una richiesta ad un altro computer (B) attraverso la rete locale, lo dovrà

Dettagli

NetMonitor. Micro guida all uso per la versione 1.2.0 di NetMonitor

NetMonitor. Micro guida all uso per la versione 1.2.0 di NetMonitor NetMonitor Micro guida all uso per la versione 1.2.0 di NetMonitor Cos è NetMonitor? NetMonitor è un piccolo software per il monitoraggio dei dispositivi in rete. Permette di avere una panoramica sui dispositivi

Dettagli

Protocollo HTTP. Alessandro Sorato

Protocollo HTTP. Alessandro Sorato Un protocollo è un insieme di regole che permettono di trovare uno standard di comunicazione tra diversi computer attraverso la rete. Quando due o più computer comunicano tra di loro si scambiano una serie

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine 1999 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright

Dettagli

DNS: Domain Name System

DNS: Domain Name System DNS: Domain Name System Persone: molte mezzi di identificazione: " CF, nome, # Passaporto Host, router Internet: " Indirizzi IP (32 bit) usati per indirizzare i datagrammi IP " Nome, es., gaia.cs.umass.edu

Dettagli