Le Socket in C Invio e Ricezione Dati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Le Socket in C Invio e Ricezione Dati"

Transcript

1 Le Scket in C Invi e Ricezine Dati Crs di laurea in Infrmatica Labratri di Reti di Calclatri A.A Simne Bassis Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI scket() #include <sys/scket.h> int scket(int dmain, int type, int prtcl); Ritrna un scket descriptr -1 in cas di errre, cn errn settata in md pprtun dmain: tra cui PF_INET, PF_INET6, PF_UNIX type: tra cui SOCK_STREAM, SOCK_DGRAM, SOCK_RAW prtcl 0: asscia autmaticamente il prtcll al tip definit getprtbyname(): specificand il prtcll definit in /etc/prtcls (es. "tcp" "udp ) Nta: AF family PF family? in passat si pensava che ad gni address family ptesser crrispndere più prtclli ciò nn è mai success: si pssn in teria usare intercambiabilmente essend uguali più crrett è usare AF_INET in struct sckaddr_in e PF_INET nella chiamata a scket() int s; struct addrinf hints, *res; // si esegue il lkup, assumend che "hints" sia già stat riempit a dvere getaddrinf("www.example.cm", "http", &hints, &res); // ricrdatevi di fare errr-checking su getaddrinf(), e di nn assumere che la prima entry // in res sia quella cercata s = scket(res->ai_family, res->ai_scktype, res->ai_prtcl); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 385 1

2 Usata dal kernel per assciare un pacchett in ingress ad un scket descriptr #include <sys/scket.h> bind() int bind(int sckfd, struct sckaddr *my_addr, int addrlen); sckfd: scket descriptr my_addr: cntiene inf sull indirizz lcale my_addrlen: lunghezza in byte dell indirizz Nn è bbligatria lat clienti; bind implicita in fase di cnnect() struct addrinf hints, *res; int sckfd; // per prima csa, si carican gli indirizzi cn getaddrinf(): memset(&hints, 0, sizef hints); hints.ai_family = AF_UNSPEC; hints.ai_scktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; getaddrinf(null, "3490", &hints, &res); // si crea la scket: sckfd = scket(res->ai_family, res->ai_scktype, res->ai_prtcl); // si fa la bind alla prta ttenuta da getaddrinf(): bind(sckfd, res->ai_addr, res->ai_addrlen); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 386 //!!! VECCHIA MODALITA specifica per IPv4!!! int sckfd; struct sckaddr_in my_addr; sckfd = scket(pf_inet, SOCK_STREAM, 0); bind() my_addr.sin_family = AF_INET; my_addr.sin_prt = htns(myport); // shrt, netwrk byte rder my_addr.sin_addr.s_addr = inet_addr(" "); memset(my_addr.sin_zer, '\0', sizef my_addr.sin_zer); bind(sckfd, (struct sckaddr *)&my_addr, sizef my_addr); s_addr può essere INADDR_ANY La versine IPv6 è IN6ADDR_ANY assegnata a sin6_addr C è anche la macr IN6ADDR_ANY_INIT che inizializza la variabile struct in6_addr In cas di errre "Address already in use" Attendere che il kernel faccia pulizia Aggiungere cdice per permettere al kernel di riutilizzare la prta int yes=1; //char yes='1'; // lavrand su piattafrme Slaris if (setsckpt(listener,sol_socket,so_reuseaddr,&yes,sizef(int)) == -1) { perrr("setsckpt"); exit(1); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 387 2

3 cnnect() #include <sys/scket.h> int cnnect(int sckfd, struct sckaddr *serv_addr, int addrlen); sckfd: scket descriptr serv_addr: cntiene inf sull indirizz remt addrlen: lunghezza in byte dell indirizz istruct addrinf hints, *res; int sckfd; // per prima csa, si carican gli indirizzi cn getaddrinf(): memset(&hints, 0, sizef hints); hints.ai_family = AF_UNSPEC; hints.ai_scktype = SOCK_STREAM; getaddrinf("www.example.cm", "3490", &hints, &res); // si crea la scket: sckfd = scket(res->ai_family, res->ai_scktype, res->ai_prtcl); // cnnessine cn binding implicit cnnect(sckfd, res->ai_addr, res->ai_addrlen); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 388 cnnect() In C avete più cntrll su csa sta realmente avvenend a livell di rete Tutt quell che avete vist a lezine viene gestit generand eventualmente pprtuni messaggi di errre Cnscere il prtcll e la rispsta del sistema vi permette di creare applicazini più rbuste Ma spess quest significa scrivere cdice mlt cmpless se si gestiscn tutte le pssibilità a bass livell Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 389 3

4 cnnect() Nel dettagli viene iniziat l handshake a tre vie In cas di errre ETIMEDOUT: se il client TCP nn riceve rispsta al su segment SYN ECONNREFUSED: se la rispsta del server al SYN del client è un RST hard errr: RST significa reset e viene lanciat quand Su una prta nn c è in asclt il server TCP vule abrtire una cnnessine TCP riceve un segment per una cnnessine che nn esiste EHOSTUNREACH ENETUNREACH: se la SYN del client elicita un ICMP destinatin unreachable da qualche ruter intermedi sft errr: il client persiste a lanciare SYN per un cert perid di temp Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 390 listen() e accept() #include <sys/scket.h> int listen (int sckfd, int backlg) Trasfrma una uncnnected scket in una passive scket sckfd: scket descriptr backlg: numer di cnnessini pendenti in cda (slit limite a livell di OS: da 20) #include <sys/scket.h> int accept (int sckfd, struct sckaddr *addr, scklen_t *addrlen) siam sicuri che c è spazi a sufficienza anche per IPv6 sckfd: scket descriptr addr: struct sckaddr_strage per cntenere inf sulla nuva cnnessine addrlen: sizef(struct sackaddr_strage) che verrà eventualmente mdificat dalla accept Al slit: restituisce un nuv scket descriptr Mantenendsi in listening sul prim Permette di cmunicare sul secnd Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 391 4

5 Due parle sul backlg Per gni scket il server mantiene due cde Incmplete cnnectin queue Una entry per gni SYN per cui si attende il cmpletament dell handshake Stat SYN_RCVD Cmpleted cnnectin queue Una entry per gni cnnessine cmpletata Stat ESTABLISHED backlg è la smma della lunghezza delle due cde Che di slit è mltiplicata per 1.5 dal OS Il su valre varia da 5 a 20 Se le cde sn piene quand arriva una nuva SYN, TCP l ignra e nn invia un RST Significherebbe che nn c è nessun server in asclt, cnfndend il client In cas di accept() viene restituita la prima entry nella cmpleted cnnectin queue se nn dispnibile, il prcess rimane in sleep Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 392 #include <string.h> #include <sys/scket.h> #include <netinet/in.h> #define MYPORT "3490" #define BACKLOG 10 int main(vid) { struct sckaddr_strage their_addr; scklen_t addr_size; struct addrinf hints, *res; int sckfd, new_fd; //!! Ricrdatevi dell errr checking per tutte le chiamate!! //getaddrinf memset(&hints, 0, sizef hints); hints.ai_family = AF_UNSPEC; // use IPv4 r IPv6, whichever hints.ai_scktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; // fill in my IP fr me getaddrinf(null, MYPORT, &hints, &res); Un esempi // scket, bind e listen: sckfd = scket(res->ai_family, res->ai_scktype, res->ai_prtcl); bind(sckfd, res->ai_addr, res->ai_addrlen); listen(sckfd, BACKLOG); // e per finire accept di una nuva cnnessine: addr_size = sizef their_addr; new_fd = accept(sckfd, (struct sckaddr *)&their_addr, &addr_size); // prnti per cmunicare sul nuv scket descriptr new_fd!. Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 393 5

6 send() e recv() Usate su stream scket datagram scket cnnesse #include <sys/scket.h> int send(int sckfd, cnst vid *msg, int len, int flags); Ritrna il numer di byte effettivamente inviati (è l applicazine a dversene ccupare) Se la cntrparte ha chius la cnnessine, si riceve il segnale SIGPIPE e la send() ritrna -1 cn errn settat a EPIPE sckfd: scket descriptr a cui si vule inviare dati msg: puntatre ai dati da spedire len: lunghezza dei dati in byte flags: se vale 0, allra send() e recv() equivalgn, rispettivamente alle system call write() e read() Altrimenti, per la send(): MSG_OOB: il prcess invia dati ut f band ; MSG_DONTROUTE: I nrmali meccanismi di ruting sn bypassati: il messaggi è dirett alla interfaccia di rete specificata dall indirizz di destinazine; MSG_DONTWAIT: abilita il nn-blcking sl per questa send. In cas di prblemi cn l invi slleva il segnale EAGAIN MSG_NOSIGNAL: nn viene sllevat il segnale SIGPIPE MSG_EOR: delimita la cnclusine di un recrd in scket SOCK_SEQPACKET Occhi alla differenza tra strlen e sizef! Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI char *msg = Prim messaggi!"; int len, bytes_sent; len = strlen(msg); bytes_sent = send(sckfd, msg, len, 0); 394 send() e recv() Usate su stream scket datagram scket cnnesse #include <sys/scket.h> int recv(int sckfd, vid *buf, int len, int flags); Ritrna il numer di byte effettivamente ricevuti 0 se la cntrparte ha chius la cnnessine in md reglare; -1 in cas di errre sckfd: scket descriptr da cui ricevere i dati E se i byte letti eccedesser le buf: buffer di lettura dimensini di buf? len: lunghezza massima del buffer Leggete sempre il manuale per evitare errri!! flags: se vale 0, allra send() e recv() equivalgn, rispettivamente alle system call write() e read() Per quant riguarda recv(): MSG_PEEK: i dati vengn letti, ma nn cnsumati in md che una successiva recv() riceverà ancra le stesse infrmazini; MSG_OOB: legge sltant i dati ut f band ; Si riceve un segnale SIGURG (dati urgenti). Usare recv() nel signal handler cn quest flag MSG_WAITALL: la recv() ritrna sltant quand la ttalità dei dati è dispnibile. Fr message-based sckets, such as SOCK_DGRAM and SOCK_SEQPACKET, the entire message shall be read in a single peratin. If a message is t lng t fit in the supplied buffer, and MSG_PEEK is nt set in the flags argument, the excess bytes shall be discarded. Fr stream-based sckets, such as SOCK_STREAM, message bundaries shall be ignred. In this case, data shall be returned t the user as sn as it becmes available, and n 395 Labratri di Reti di Calclatri (Infrmatica) - A.A S. data Bassis shall be discarded. Università di Milan DI 6

7 send() e recv() int cunter = 3490; char *secret_message = Cia ; int stream_scket; struct sckaddr_in dest; int temp; // stream sckets e recv() struct addrinf hints, *res; int sckfd; char buf[512]; int byte_cunt; // si ttiene l hst inf, si crea la scket, e la si cnnette memset(&hints, 0, sizef hints); hints.ai_family = AF_UNSPEC; // use IPv4 r IPv6, whichever hints.ai_scktype = SOCK_STREAM; getaddrinf("www.example.cm", "3490", &hints, &res); sckfd = scket(res->ai_family, res->ai_scktype, res->ai_prtcl); cnnect(sckfd, res->ai_addr, res->ai_addrlen); // ricezine dati!! byte_cunt = recv(sckfd, buf, sizef buf, 0); printf("recv()'d %d bytes f data in buf\n", byte_cunt); // TCP stream sckets // si assume che la scket sia cnnessa // stream_scket = scket(... // cnnect(stream_scket,... // si cnverte in netwrk byte rder temp = htnl(cunter); // invi dati send(stream_scket, &temp, sizef temp, 0); // invi messaggi segret ut f band send(stream_scket, secret_message, strlen(secret_message)+1, MSG_OOB); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI Occhi al + 1! 396 Invi e Ricezine Dati send() parziali Una send() può inviare parzialmente un messaggi Il restante nn va pers Giace in un buffer prnt per essere inviat #include <sys/scket.h> int sendall(int s, char *buf, int *len) { int ttal = 0; // quanti byte sn stati spediti int bytesleft = *len; // quanti ce ne rimangn da spedire int n; È il kernel che decide quale plitica adttare È il prgrammatre che deve gestire la situazine while(ttal < *len) { n = send(s, buf+ttal, bytesleft, 0); if (n == -1) { break; ttal += n; bytesleft -= n; *len = ttal; return n==-1?-1:0; // return: byte effettivamente spediti // return: -1 se errre, 0 success char buf[10] = "Hall!"; int len; len = strlen(buf); if (sendall(s, buf, &len) == -1) { perrr("sendall"); printf( Sn stati spediti %d byte a causa di un errre!\n", len); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI Prblema: cme fa il ricevente a sapere quand un pacchett termina e un altr inizia? 397 7

8 RecvLine() in c? Nn esiste nelle librerie standard né in Psix Pssibili sluzini 1. Leggere un byte alla vlta e cntrllare che nn sia un ritrn a cap Prblemi di perfrmance E se si usasse \r\n? 2. Leggere cn MSGPEEK, individuare il ritrn a cap e rileggere il numer esatt di byte cntenente l intera linea Scelta efficiente ma può essere cmplicata 3. Usare rutine di alt livell fgets() e fputs() a. Prmuvere una scket cnnessa a due FILE*, un per la lettura e un per la scrittura, usand fdpen(). b. line-buffer il FILE* in scrittura trammite setlinebuf() c. Usare sempre fgets() per leggere e fputs() per scrivere d. Ricrdarsi di terminare le linee di test cn \n Può causare deadlck a causa del buffering Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 398 RecvLine() cn fgets() /* Prmte scket */ if (NULL==(in=fdpen(sck, "r")) NULL==(ut=fdpen(sck, "w"))) { perrr("fdpen"); exit(3); setlinebuf(ut); /* Ping-png in an infinite lp */ while (1) { char png[256]; fputs("ping\n", ut); puts("> PING"); fgets(png, 256, in); if (strcmp(png, "PONG\n")) { fprintf(stderr, "Server didn't PONG back\n"); exit(4); puts("< PONG"); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 399 8

9 Serializzazine cme incapsulare dati Per inviare dati binari (es. int flat) 1. Cnvertire il numer in test (es. sprintf()) e inviare il test. Il ricevente ricnvertirà il test (es. strtl(), atf(),sscanf()) Pr: dati facilmente leggibili Cntr: cnversine lenta e eccessiv cnsum di spazi 2. Inviare dati grezzi, passand un puntatre ai dati alla send() Pr: velce Cntr: nn prtabile: architetture diverse usan diverse rappresentazini binarie byte rdering /* MITTENTE */ duble d = ; send(s, &d, sizef d, 0); /* Attenzine! Nn prtabile! /* /* RICEVENTE */ duble d; recv(s, &d, sizef d, 0); /* Attenzine! Nn prtabile! /* Per gli interi ci sn le funzini htns(), ma nn per i flat Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI Serializzazine (marshal). Cdificare il numer in una frma binaria prtabile Pr: semplice e velce Cntr: nn standard, nn efficiente us dell spazi, range trpp ristrett (per numeri più grandi di 32767) e nn preserva gli ultimi decimali #include <stdi.h> #include <stdint.h> uint32_t htnf(flat f) { uint32_t p; uint32_t sign; if (f < 0) { sign = 1; f = -f; else { sign = 0; p = ((((uint32_t)f)&0x7fff)<<16) (sign<<31); p = (uint32_t)(((f - (int)f) * f))&0xffff; return p; flat nthf(uint32_t p) { flat f = ((p>>16)&0x7fff); f += (p&0xffff) / f; Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI // parte intera // frazine // bit di segn if (((p>>31)&0x1) == 0x1) { f = -f; return f; Cdifica flat in numer a 32 bit Bit 31: segn (1 negativ) Bit 30-16: parte intera Bit 15-0: parte frazinaria // parte intera e segn // frazine int main(vid) { flat f = , f2; uint32_t netf; netf = htnf(f); f2 = nthf(netf); printf("original: %f\n", f); printf(" Netwrk: 0x%08X\n", netf); printf("unpacked: %f\n", f2); return 0; Utilizz 401 9

10 Serializzazine flat, struct e standard gli standard ci salverann RFC 4506 standard per External Data Representatin Definisce il frmat per parecchi tipi di dati IEEE-754 standard per memrizzare numeri flating pint La maggir parte delle piattafrme l usa in lcale Mai assumerl a garanzia della prtabilità Ci sn tante librerie a riguard Megli nn reinventarsi la ruta Per chi è curis Semplice implementazine dell standard struct: funzini pack() e unpack() Idea: cdificare gni camp indipendentemente Ma ancra una vlta in C nn sn previste (nn standard) anche se le librerie per farl nn mancan Per chi è curis Men semplice implementazine di pack() e unpack() Funzina cn una lista variabile di argmenti (cme printf()) Cdifican in un array di caratteri piuttst che in un inter Attenzine ad attacchi per destabilizzare il sistema megli indicare la lunghezza della stringa nde evitare buffer verrun Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 402 Marshalling incapsulament Per le stringhe è più semplice Ricrdatevi di aggiungere il carattere di fine stringa laddve serve len = recv(myscket, buffer, MAXRCVLEN, 0); buffer[len] = '\0'; // dbbiam inserire il NULL terminatr ( character) /* printf("received %s (%d bytes).\n", buffer, len); A vlte è sufficiente aggiungere un header Cn tutte le infrmazini previste dal prtcll di cmunicazine Es. chat: due infrmazini (messaggi, mittente) Prblema: Tm dice «Cia» e Jerry replica «Bungirn a tutti». TmCiaJerryBungirn a tutti Un generic client riceverà Sluzini 1. Usare messaggi di lunghezza fissata e il metd sendall() Eccessiv sprec di risrse 2. Definire un prtcll cn eventuali header Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI Es. chat: due infrmazini (messaggi, mittente) Assunzini: user name: lunghezza fissa di 8 caratteri, riempiti cn \0 messaggi: lunghezza variabile (max 128 caratteri) Struttura del pacchett: len (1 byte unsigned) lunghezza ttale del pacchett (n+8) name (8 byte) username, NULL padded chatdata (n byte)

11 Es. chat: prim pacchett Marshalling incapsulament 0C 54 6F 6D (length) T m (padding) C i... secnd pacchett 1A 4A D 6E... (length) J e r r y (padding) B u n... Invi: sendall() La lunghezza in netwrk byte rder Ricezine: Dppia recv() La prima per la lunghezza La secnda dp aver instanziat un buffer delle dimensini crrette Singla recv() Buffer temprane (in grad di cntenere 2 pacchetti) e pst prcessing Attenzine alla ricezine di pacchetti incmpleti (shift della parte incmpleta us di circular buffer) Attenzine: la gestine di stringhe può nn essere csì semplice cme sembra Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 404 clse(sckfd); clse() Chiude la cnnessine e impedisce ulteriri read e write Su windws usare clsescket() In realtà marca la scket cme chiusa sl se i reference cunt al descrittre è 0, altrimenti decrementa il reference cunt e lascia la cnnessine invariata Utile per sistemi cncrrenti multiprcess Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI

12 shutdwn() shutdwn(int sckfd, int hw); Per avere più cntrll sulla chiusura (sprattutt per multiplexing I/O) sckfd: scket descriptr da chiudere hw: 0: ulteriri receive nn sn permesse 1: ulteriri send nn sn permesse 2: ulteriri send e receive nn sn permesse (equivalente della clse()) Nn chiude (rende dispnibile) il scket descriptr, ma ne cambia l usabilità In sstanza invia pprtunamente paccheti FIN shutdwn() mdifica l usabilità del canale indipendentemente dal prcess e dai reference cunt Tutti i prcessi vedrann mdificata l usabilità del canale Nei sistemi recenti, una clse() richiama la shutdwn() per una chiusura pulita Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 406 Esercizi C 2 Si implementi un sistema client-server in cui il client invia al server una espressine nella frma a p b dve a, b sn numeri interi e p { +, -, *, / rappresenta il simbl dell perazine che deve essere eseguita sui due interi. Il server restituirà al client il risultat. Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI

13 getpeername() e gethstname() #include <sys/scket.h> int getpeername(int sckfd, struct sckaddr *addr, int *addrlen);; Riprta chi c è all altr cap di una (stream) scket cnnessa sckfd: stream scket descriptr addr: indirizz della cntrparte addrlen: settat inizialmente a sizef *addr sizef (struct sckaddr) Per ttenere più infrmazini si può usare inet_ntp() getnameinf() Il name nel nme della funzine è per cntemplare l ampi ventagli di tipi diversi di scket #include <unistd.h> int gethstname(char *hstname, size_t size); Restituisce il nme dell hst su cui gira il prgramma hstname: cnterrà l hstname una vlta che la funzine viene eseguita Se buffer nn sufficiente, segnalazine errre dati trncati size: lunghezza in byte del buffer Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 408 getpeername() e gethstname() // assunzine s è una scket cnnessa scklen_t len; struct sckaddr_strage addr; char ipstr[inet6_addrstrlen]; int prt; len = sizef addr; getpeername(s, (struct sckaddr*)&addr, &len); // per gestire sia IPv4 che IPv6: if (addr.ss_family == AF_INET) { struct sckaddr_in *s = (struct sckaddr_in *)&addr; prt = nths(s->sin_prt); inet_ntp(af_inet, &s->sin_addr, ipstr, sizef ipstr); else { // AF_INET6 struct sckaddr_in6 *s = (struct sckaddr_in6 *)&addr; prt = nths(s->sin6_prt); inet_ntp(af_inet6, &s->sin6_addr, ipstr, sizef ipstr); printf("peer IP address: %s\n", ipstr); printf("peer prt : %d\n", prt); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI

14 getnameinf() #include <sys/scket.h> #include <netdb.h> int getnameinf(cnst struct sckaddr *sa, scklen_t salen, char *hst, size_t hstlen, char *serv, size_t servlen, int flags); Funzine ppsta a getaddrinf(). Effettua un name e service name lkup su un struct sckaddr L us dei parametri è abbastanza immediat Tra i flag più imprtanti NI_NOFQDN: hst cnterrà sl l hstname e nn il nme cmplet NI_DGRAM: cnsidera il servizi cme basat su UDP piuttst che su TCP NI_NUMERICHOST, NI_NUMERICSERV: ritrna la frma numerica di indirizzi e servizi NI_NAMEREQD: se il nme nn può essere reperit, la funzine ritrna un errre Altrimenti l stess indirizz IP nel camp hst struct sckaddr_in6 sa; char hst[1024]; char service[20]; // può essere IPv4 // assunzine: sa cntiene inf su hst e prta getnameinf(&sa, sizef sa, hst, sizef hst, service, sizef service, 0); printf(" hst: %s\n", hst); // es. "www.example.cm" printf("service: %s\n", service); // es. "http" Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI 410 #include <errn.h> int errn; Una nta su errn Variabile glbale che cntiene infrmazini sull errre causat dall ultima system call eseguita L header file errn.h cntiene una serie di cstanti simbliche per descrivere errri Funzini cme perrr() e strerrr(errn) permettn di avere una versine leggibile dell errre Imprtante: nella maggir parte dei sistemi, errn è threadsafe nn è una variabile glbale, ma si cmprta cme tale s = scket(pf_inet, SOCK_STREAM, 0); if (s == -1) { perrr("scket"); // ppure si usi strerrr(errn) tryagain: if (select(n, &readfds, NULL, NULL) == -1) { // si è verificat un errre!! // se il prgramma è stat interrtt, è sufficiente far ripartire la select(): if (errn == EINTR) gt tryagain; // AAHHH! gt!!! // altrimenti l errre è più seri: perrr("select"); exit(1); Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI

15 Una sulle wrapper functin Vist che gni system call richiede la gestine degli errri è pprtun definire wrapper functin che Chiaman la system call Testan il valre di ritrn Terminan in cas di errre Csì facend i prgrammi risulterann più sintetici vid sys_err(char *s) { perrr(s) exit(-1); int Scket(int family, int type, int prtcl) { int n; if ( (n=scket(family, type, prtcl)) < 0) sys_err("scket errr"); return n; Labratri di Reti di Calclatri (Infrmatica) - A.A Università di Milan DI

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

A chi si rivolge: a coloro che già svolgono o svolgeranno mansioni di amministratore di sistemi o ingegnere di sistemi in strutture medio-grandi

A chi si rivolge: a coloro che già svolgono o svolgeranno mansioni di amministratore di sistemi o ingegnere di sistemi in strutture medio-grandi Via Renat Cesarini, 58/60 00144 Rma Via Scrate 26-20128 - Milan P. IVA: 01508940663 CCIAA: 11380/00/AQ Cisc, Juniper and Micrsft authrized Trainers Esame 70 291: (Btcamp Crs MS-2276 e crs MS-2277 ) Crs

Dettagli

Aggiornamento remoto della chiave hardware

Aggiornamento remoto della chiave hardware AMV S.r.l. Via San Lrenz, 106 34077 Rnchi dei Leginari (Grizia) Italy Ph. +39 0481.779.903 r.a. Fax +39 0481.777.125 E-mail: inf@amv.it www.amv.it Cap. Sc. 10.920,00 i.v. P.Iva: IT00382470318 C.F. e Iscriz.

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

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

RELAZIONE PROGETTO Breve descrizione del problema trattato

RELAZIONE PROGETTO Breve descrizione del problema trattato RELAZIONE PROGETTO Irene Maria Girnacci Fndamenti di prgrammazine I ann laurea triennale Breve descrizine del prblema trattat Il prblema assegnat cnsiste nell svilupp di una agenda elettrnica, cmpsta da

Dettagli

Manuale Amministratore. Edizione Ottobre 2008

Manuale Amministratore. Edizione Ottobre 2008 Manuale Amministratre Edizine Ottbre 2008 Manuale Amministratre PaschiInTesreria - Ottbre 2008 INDICE 1. Intrduzine 3 2. Access Amministratre 4 3. Funzini Amministrative 6 3.1. Gestine Azienda 6 3.2. Gestine

Dettagli

Understanding VMware HA. Le meccaniche di ridondanza dei cluster VMware vsphere (v5.x)

Understanding VMware HA. Le meccaniche di ridondanza dei cluster VMware vsphere (v5.x) Understanding VMware HA Le meccaniche di ridndanza dei cluster VMware vsphere (v5.x) 1 «Chi sn?» Rcc Sicilia, IT Manager e Virtualizatin Architect. Attualmente sn respnsabile del team di Design di un System

Dettagli

Università degli Studi di Lecce Facoltà di Ingegneria Informatica N.O. A.A. 2003/2004. Tesina Esame di Elettronica Analogica II

Università degli Studi di Lecce Facoltà di Ingegneria Informatica N.O. A.A. 2003/2004. Tesina Esame di Elettronica Analogica II Università degli Studi di Lecce Facltà di Ingegneria Infrmatica N.O. A.A. /4 esina Esame di Elettrnica Analgica II Studentessa: Laura Crchia Dcente: Dtt. Marc Panare INDICE Presentazine del prgett del

Dettagli

LA FATTURAZIONE ELETTRONICA VERSO LA PUBBLICA AMMINISTRAZIONE

LA FATTURAZIONE ELETTRONICA VERSO LA PUBBLICA AMMINISTRAZIONE DATALOG ITALIA SRL LA FATTURAZIONE ELETTRONICA VERSO LA PUBBLICA AMMINISTRAZIONE La Finanziaria 2008 ha stabilit che la fatturazine nei cnfrnti delle amministrazini dell stat debba avvenire esclusivamente

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

Abstract: una versione sintetica della tua relazione. Il lavoro di ricerca e progettazione svolto prima di cominciare gli esperimenti.

Abstract: una versione sintetica della tua relazione. Il lavoro di ricerca e progettazione svolto prima di cominciare gli esperimenti. COME SCRIVERE LA RELAZIONE DEL PROGETTO La tua relazine finale deve includere le seguenti sezini: Titl Abstract: una versine sintetica della tua relazine. Indice. Dmanda, variabili e iptesi. Il lavr di

Dettagli

Dati dai questionari. Report preliminare. Maggio 2015

Dati dai questionari. Report preliminare. Maggio 2015 Dati dai questinari Reprt preliminare Maggi 2015 Dati Scule Regine Abruzz 3,9% 16 Basilicata 0,5% 2 Calabria 2,4% 10 Campania 3,9% 16 Emilia Rmagna 4,6% 19 Friuli Venezia Giulia 3,4% 14 Lazi 4,1% 17 Liguria

Dettagli

3) MECCANISMI DI RILASSAMENTO

3) MECCANISMI DI RILASSAMENTO 3) MECCANSM D RLASSAMENTO nuclei eccitati tendn a cedere l'energia acquisita ed a ritrnare nella "psizine" di equilibri. meccanismi del rilassament sn mlt cmplessi (sprattutt nei slidi) e pssn essere classificati

Dettagli

Per risolvere le equazioni alle differenze si può utilizzare il metodo della Z-trasformata.

Per risolvere le equazioni alle differenze si può utilizzare il metodo della Z-trasformata. 8.. STRUMENTI MATEMATICI 8. Equazini alle differenze. Sn legami statici che legan i valri attuali (all istante k) e passati (negli istanti k, k, ecc.) dell ingress e k e dell uscita u k : u k = f(e 0,

Dettagli

Cos è il Master Essere HR Business Partner?

Cos è il Master Essere HR Business Partner? Cs è il Master Essere HR Business Partner? Un percrs che aiuta i prfessinisti HR ad andare ltre in termini di autrevlezza e fcalizzazine sul cliente e sui risultati. Quali biettivi permette di raggiungere?

Dettagli

1. Microsoft Power Point: costruire una presentazione

1. Microsoft Power Point: costruire una presentazione Dtt. Pal Mnella Labratri di Infrmatica Specialistica per Lettere Mderne 2 semestre, A.A. 2009-2010 Dispensa n. 3: Presentazini Indice Dispensa n. 3: Presentazini...1 1. Micrsft Pwer Pint: cstruire una

Dettagli

Silk Enterprise Content Management Collaboration, content, people, innovation.

Silk Enterprise Content Management Collaboration, content, people, innovation. Cllabratin, cntent, peple, innvatin. The Need fr an Enterprise Cntent Management System In un mercat knwledge riented, estremamente cmpetitiv e dinamic, le Imprese di success sn quelle che gestiscn in

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

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

Progettare l ambiente di apprendimento. Valorizzare l esperienza e le conoscenze degli alunni

Progettare l ambiente di apprendimento. Valorizzare l esperienza e le conoscenze degli alunni Rendiam prduttive le riunini Per prgettare un mdell di scula: un apprcci culturale e filsfic un elabrazine pedaggica una prgettazine didattica frti cnscenze disciplinari L autnmia è: respnsabilità innvazine

Dettagli

Sconti e agevolazioni speciali in CONVENZIONE em.01 14

Sconti e agevolazioni speciali in CONVENZIONE em.01 14 Sigeim Energia srl Ftvltaic Veicli elettrici Batterie slari Scnti e agevlazini speciali in CONVENZIONE em.01 14 Negli ultimi 6 anni la Sigeim Energia si è dedicata alla prgettazine e installazine di impianti

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

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

1. CORRENTE CONTINUA

1. CORRENTE CONTINUA . ONT ONTNUA.. arica elettrica e crrente elettrica e e e e P N NP e e arica elementare carica dell elettrne,6 0-9 Massa dell elettrne m 9, 0 - Kg L atm è neutr. Le cariche che pssn essere spstate nei slidi

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

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

SOAP qwerty Manuale Utente. Ver.1.0.20101105. Contenuti

SOAP qwerty Manuale Utente. Ver.1.0.20101105. Contenuti Ver.1.0.20101105 Cntenuti SOAP QWERTY 1. Per la Vstra Sicurezza... 4 2. Prfil del telefn... 7 3. Prim utilizz... 9 Installare la SIM Card... 9 Installare la Memry card... 11 Installare la Batteria... 12

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

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

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

CONTENUTO INTRODUZIONE. Descrizione della piattaforma Servizio di ricezione di dati Servizio di trading Materiale di supporto.

CONTENUTO INTRODUZIONE. Descrizione della piattaforma Servizio di ricezione di dati Servizio di trading Materiale di supporto. CONTENUTO INTRODUZIONE Descrizine della piattafrma Servizi di ricezine di dati Servizi di trading Materiale di supprt INIZIARE A LAVORARE CON VISUAL CHART V Requisiti del sistema Cme ttenere i dati di

Dettagli

REGOLAMENTO del CONCORSO A PREMI denominato Scopri l'azerbaijan e vinci un biglietto per Expo2015.

REGOLAMENTO del CONCORSO A PREMI denominato Scopri l'azerbaijan e vinci un biglietto per Expo2015. REGOLAMENTO del CONCORSO A PREMI denminat Scpri l'azerbaijan e vinci un bigliett per Exp2015. 1. SOCIETA PROMOTRICE Simmetric SRL Via V. Frcella 13, 20144 Milan P.IVA 05682780969 (di seguit la Prmtrice

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

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

UNIVERSITA' DEGLI STUDI DI FIRENZE FACOLTA' DI SCIENZE DELLA FORMAZIONE CORSO DI LAUREA IN. Formatore Multimediale

UNIVERSITA' DEGLI STUDI DI FIRENZE FACOLTA' DI SCIENZE DELLA FORMAZIONE CORSO DI LAUREA IN. Formatore Multimediale UNIVERSITA' DEGLI STUDI DI FIRENZE FACOLTA' DI SCIENZE DELLA FORMAZIONE CORSO DI LAUREA IN Frmatre Multimediale METODOLOGIA METACOGNITIVA DEI SISTEMI INTEGRATI PER LA GESTIONE DELL APPRENDIMENTO E DELLA

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

MODELLO RI2 DOMANDA DI RILASCIO/RINNOVO AUTORIZZAZIONE ALLO SCARICO IN CORPO IDRICO SUPERFICIALE PER IMPIANTI A SCAMBIO TERMICO

MODELLO RI2 DOMANDA DI RILASCIO/RINNOVO AUTORIZZAZIONE ALLO SCARICO IN CORPO IDRICO SUPERFICIALE PER IMPIANTI A SCAMBIO TERMICO MODELLO RI2 DOMANDA DI RILASCIO/RINNOVO AUTORIZZAZIONE ALLO SCARICO IN CORPO IDRICO SUPERFICIALE PER IMPIANTI A SCAMBIO TERMICO Riepilg dcumentazine 1 2 Istanza di autrizzazine all scaric in crp idric

Dettagli

Guida alla Convenzione TELEFONIA MOBILE 5

Guida alla Convenzione TELEFONIA MOBILE 5 TELEFONIA MOBILE 5 Realizzat da azienda cn sistema di gestine per la qualità certificat ISO 9001:2008 Smmari 1. PREMESSA... 4 1.1 CRITERI DI ASSEGNAZIONE DELLE SIM IN CONVENZIONE AI DIPENDENTI DELLE AMMINISTRAZIONI...

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

I SERVIZI DI CUI AVETE BISOGNO OVUNQUE VOI SIATE

I SERVIZI DI CUI AVETE BISOGNO OVUNQUE VOI SIATE I SERVIZI DI CUI AVETE BISOGNO OVUNQUE VOI SIATE La direttiva Servizi mira a ffrire ai cnsumatri più scelta, più qualità e un access più facile ai servizi in tutt il territri dell UE PERCHÉ LE NUOVE NORME

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

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

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

La retta è il luogo geometrico dei punti che soddisfano la seguente relazione

La retta è il luogo geometrico dei punti che soddisfano la seguente relazione RETTE Definizine intuitiva La retta linea retta è un dei tre enti gemetrici fndamentali della gemetria euclidea. Viene definita da Euclide nei sui Elementi cme un cncett primitiv. Un fil di ctne di spag

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

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

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

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

Chi è il soggetto che procede ad erogare il servizio di scambio sul posto? Quali sono i vantaggi di aderire al regime di scambio sul posto?

Chi è il soggetto che procede ad erogare il servizio di scambio sul posto? Quali sono i vantaggi di aderire al regime di scambio sul posto? Mdalità di access alla cnvenzine (13) Csa si intende per servizi di scambi sul pst? L scambi sul pst [Deliberazine ARG/elt 74/08, Allegat A Test integrat dell scambi sul pst (TISP)], è un meccanism che

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

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Non vuoi disegnare a mano libera? Preferisci usare il computer? Nessun problema! Puoi...

Non vuoi disegnare a mano libera? Preferisci usare il computer? Nessun problema! Puoi... Idee per nn far fatica Nn vui disegnare a man libera? Preferisci usare il cmputer? Nessun prblema! Pui... Utilizzare gli emticn In quest blg ci sn numersi emticn a tua dispsizine. Clicca semplicemente

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

Le system call: fork(), wait(), exit()

Le system call: fork(), wait(), exit() Le system call: fork(), wait(), exit() Di seguito viene mostrato un programma che fa uso di puntatori a funzione, nel quale si mette in evidenza il loro utilizzo. Programma A1 #include int add(a,b,c)

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

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

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

D.P.G.R n in data Eventi eccezionali del/dal..al (gg/mese/anno). MODULO PER PRIVATI

D.P.G.R n in data Eventi eccezionali del/dal..al (gg/mese/anno). MODULO PER PRIVATI Md. 1 - Privati D.P.G.R n in data Eventi eccezinali del/dal..al (gg/mese/ann). MODULO PER PRIVATI Cn il presente mdul pssn essere segnalate anche vci di dann nn ricmprese nella LR 4/97 Da cnsegnare al

Dettagli

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

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

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

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

Università degli Studi di Messina Anno Accademico 2014/2015. Dipartimento di Scienze Economiche, Aziendali, Ambientali e Metodologie Quantitative

Università degli Studi di Messina Anno Accademico 2014/2015. Dipartimento di Scienze Economiche, Aziendali, Ambientali e Metodologie Quantitative Università degli Studi di Messina Ann Accademic 2014/2015 Dipartiment di Scienze Ecnmiche, Aziendali, Ambientali e Metdlgie Quantitative I MASTER UNIVERSITARIO DI PRIMO LIVELLO IN ECONOMIA BANCARIA E FINANZIARIA

Dettagli

IL TESTO ARGOMENTATIVO

IL TESTO ARGOMENTATIVO IL TESTO ARGOMENTATIVO 1. LA STRUTTURA DI UN TESTO ARGOMENTATIVO La struttura base del test argmentativ può essere csì schematizzata: PROBLEMA TEMATICA CONFUTAZIONE DELLE SIN CONCLUSIONE Questa struttura,

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

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

La protezione dai memory error exploit

La protezione dai memory error exploit Università degli Studi di Milano Sommario Introduzione 1 Stack Guard Terminator Canaries Random Canaries 2 3 Buffer Overflow Stack Guard Introduzione Buffer Overflow Condizione anomala. Memorizzazione

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

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

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

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it Sicurezza delle reti wireless Alberto Gianoli alberto.gianoli@fe.infn.it Concetti di base IEEE 802.11: famiglia di standard tra cui: 802.11a, b, g: physical e max data rate spec. 802.11e: QoS (traffic

Dettagli

VERBALE DELLA COMMISSIONE PER L AFFIDAMENTO DEL SERVIZIO DI PULIZIA E DISINFEZIONE DEI LOCALI CAMERALI CIG N. 1310739808

VERBALE DELLA COMMISSIONE PER L AFFIDAMENTO DEL SERVIZIO DI PULIZIA E DISINFEZIONE DEI LOCALI CAMERALI CIG N. 1310739808 VERBALE DELLA COMMISSIONE PER L AFFIDAMENTO DEL SERVIZIO DI PULIZIA E DISINFEZIONE DEI LOCALI CAMERALI CIG N. 1310739808 L ann duemilaundici il girn 11 del mese di Aprile alle re 10:00, press la sede della

Dettagli

PREMESSA PREMESSA PREMESSA PRE

PREMESSA PREMESSA PREMESSA PRE PREMESSA PREMESSA I Servizi via internet, cellulare e telefn le permettn di perare in md semplice e dirett cn la Banca, dvunque lei sia, a qualsiasi ra del girn, scegliend di vlta in vlta il canale che

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

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

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

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

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

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

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

Manuale di Okteta. Friedrich W. H. Kossebau Alex Richardson Traduzione della documentazione: Federico Zenith

Manuale di Okteta. Friedrich W. H. Kossebau Alex Richardson Traduzione della documentazione: Federico Zenith Friedrich W. H. Kossebau Alex Richardson Traduzione della documentazione: Federico Zenith 2 Indice 1 Introduzione 6 2 Fondamentali 7 2.1 Avviare Okteta........................................ 7 2.2 Uso..............................................

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

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

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

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

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

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

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

SPINE PER GLI IMPIANTI ELETTRICI

SPINE PER GLI IMPIANTI ELETTRICI SPINE PER GLI IMPIANTI ELETTRICI Una spina elettrica è un cnnettre elettric che può essere inserit in una presa di crrente cmplementare. Per mtivi di sicurezza, il lat cstantemente stt tensine è sempre

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

MINIGUIDA SULLA CASSA INTEGRAZIONE GUADAGNI ORDINARIA NELL'INDUSTRIA (ESCLUSO SETTORE EDILE)

MINIGUIDA SULLA CASSA INTEGRAZIONE GUADAGNI ORDINARIA NELL'INDUSTRIA (ESCLUSO SETTORE EDILE) MINIGUIDA SULLA CASSA INTEGRAZIONE GUADAGNI ORDINARIA NELL'INDUSTRIA (ESCLUSO SETTORE EDILE) "per la nzine di "industria" ai fini del trattament di cig ccrre fare riferiment alla legge 9 marz 1989 n. 88

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

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

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli