unsigned long inet_addr(cp) char *cp;

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "unsigned long inet_addr(cp) char *cp;"

Transcript

1 /* bcopystru.c #include <memory.h> struct point int x; char *y; ; struct point a, b; struct pint *pta, *ptb; a.x = 5; a.y = pippo ; b = a; printf i valori del secondo point sono: %d %s\n,b.x,b.y); pta= struct point *) mallocsizeof struct point)); ptb= struct point *) mallocsizeof struct point)); pta->x)= 10; pta->y)= plutonio ; bcopypta, ptb, sizeofstruct point)); printf la dimensione di *pta e *ptb: %d %d\n, sizeof*pta), sizeof*ptb)); printf la dimensione di pta e ptb: %d %d\n, sizeofpta),sizeofptb)); printf i valori del primo point sono: %d %s\n,pta->x, pta->y); printf i valori del secondo point sono: %d %s\n,ptb->x, pta->y); printf i valori degli indirizzi pta->x, di ptb->:%d %d\n,&pta->x), &ptb->x)); printf i valori degli indirizzi pta->y e di ptb->y: %ld %ld\n, pta->y, ptb ->y); return0); i valori del secondo point sono:5 pippo la dimensione di *pta e *ptb: 8 8 la dimensione di pta e ptb: 4 4 i valori del primo point sono: 10 plutonio i valori del secondo point sono: 10 plutonio i valori degli indirizzi pta->x, di ptb->: i valori degli indirizzi pta->y e di ptb->y:

2 /* intoa.c #include <memory.h> #include <malloc.h> #include <netinet/in.h> /* Internet domain, e il file header piu aggiornato che riguarda l Internet, contiene la definizione di struct in_addr #include <arpa/inet.h> #include <netdb.h> /* contiene la definizione di struct hostent /* char * inet_ntoain) struct in_addr in; unsigned long inet_addrcp) char *cp; struct in_addr struct...; struct...; u_long s_addr; ); struct in_addr server; char *s; unsigned long a; server.s_addr= 255; s= inet_ntoaserver); printf indirizzo: %s\n, s); server.s_addr= 256; s= inet_ntoaserver); printf indirizzo: %s\n, s); server.s_addr= 65535; s= inet_ntoaserver); printf indirizzo: %s\n, s); s= ; a= inet_addrs); printf indirizzo numerico: %u\n, a); returno0); /* prompt> cc intoa.c prompt> a.out indirizzo: indirizzo: indirizzo: indirizzo numerico:456

3 /* pro.c mainargc, argv) int argc; char *argv; int port, porta; printf %s\n, argv[1]); port= atoiargv[2]); sscanfargv[2], %d, &porta); printf %d\n, port); printf %d\n, porta); return0); ) /* pro

4 /* cliu1.c /* Il programma da utilizzarsi in combinazione con servu1.c, genera un socket, nel dominio Unix, di nome endpoint2, attraverso il quale questo programma si mette in comunicazione con il socket, nel dominio di Unix, di nome endpoint1, generato dal programma servu1.c, per inviargli un messaggio dal programma cliu1.c e poi per ricevere un messaggio di risposta. Tale esempio mostra la bidirezionalita del socket endpoint2 #include <sys/un.h /* Unix domain #define BUFLEN 1024 char *msg = Richiesta di servizio dal cli_sock ; int s; int addrlen = sizeofstruct sockaddr_un); struct sockddr_un cli_sock; struct sockaddr_un aiuto; /* struct di appoggio che consente di fare la sendto char buf[buflen]; int cc; /* genera il socket nel dominio UNIX: s= socketaf_unix, SOCK_DGRAM, 0); if s== - 1) perror Client: socket\n ); else printf generazione del socket %d: ok\n, s); /* fai la bind: cli_sock.sun_family = AF_UNIX; strcpycli_sock.sun_path, endpoint2 ); if binds, &cli_sock, sozeofstruct sockaddr_un)) == -1 ) perror Client: bind\n ); /*trasmetti un messaggio attraverso il socket s verso il socket endpoint1 : aiuto.sun_family = AF_UNIX; strcpyaiuto,sun_path, endpoint1 ); if sentos,msg, strlenmsg) +1, 0, &aiuto, strlenaiuto.sun_path)+2) == -1 ) perror Client: error send\nn ); ) printf ATTESA DATI DAL SERVER \n ); /* leggi dal socket s: if cc= reads, buf, BUFLEN)) == -1 perror Client: read\n ); printf Client: ricevuto -> %s\n, buf); unlink endpoint2 )

5 /*servu1.c /* Il programma da utilizzarsi in combinazione con cliu1.c, genera un socket, nel dominio di Unix, di nome endpoint1, attraverso il quale questo programma si mette in comunicazione con il socket, nel dominio di Unix, di nome endpoint2, generato dal programma cliu1.c, per ricevere un messaggio dal programma cliu1.c e poi per inviargli un messaggio di risposta. Tale esempio mostra la bidirezionalita del socket endpoint1. #include <sys/un.h /* Unix domain #define BUFLEN 1024 char *msg = Messagio dal server ; int s; int addrlen = sizeofstruct sockaddr_un); struct sockaddr_un appoggio: /* struct di appoggio che consente di effettuare la recvfrom struct sockaddr_un serv_sock; char buf[buflen]; /* genera il socket nel dominio UNIX: s = socketaf_unix, SOCK_DGRAM, 0); if s == -1) perror Server: socket\n ); else printf generazione del socket %d: ok\n, s); /* fai la bind: serv_sock.sun_family = AF_UNIX; strcpyserv_sock.sun_path, endpoint1 ); if binds, &serv_sock, sizeofstruct sockaddr_un)) == -1 ) perror Server:bind\n ); /* metti il socket s in ricezione di cio che giunge da appoggio: if recvfroms, buf, BUFLEN, 0, &appoggio, &addrlen) == -1 ) perror Server: recvfrom\n ); printf MESSAGGIO DAL CLIENT: %s \n, buf); if sendtos, msg, strlenmsg) -1, 0, &appoggio, addrlen) == -1) perror Server: send\n ); unlink endpoint1 );

6 /* cliu11.c /* Il programma e una variante di cliu1.c Il programma da utilizzarsi in combinazione con servu11.c, genera un socket, nel dominio di Unix, di nome endpoint2, attraverso il quale questo programma si mette in comunicazione con il socket, nel dominio di Unix, di nome endpoint1, generato dal programma servu11.c, per inviargli un messaggio dal programma cliu11.c e poi per ricevere un messaggio di risposta. Tale esempio mostra la bidirezionalita del socket endpoint2. #include <sys/un.h> /* UNIX domain #define BUFLEN 1024 char *msg = Richiesta di servizio dal cli_sock ; int s; int addrlen = sizeofstruct sockaddr_un); struct sockaddr_un cli_sock; struct sockaddr_un aiuto; /* struct di appoggio che consente di fare la sendto char buf[buflen]; int cc; /* genera il socket nel dominio UNIX: s = socketaf_unix, SOCK_DGRAM, 0); if s== -1) perror Client: socket\n ); else printf generazione del socket %d: ok\n, s); /* fai la bind: cli_sock.sun_family = AF_UNIX; strcpycli_sock.sun_path, ëndpoint2 ); if binds, &cli_sock, sizeofstruct sockaddr_un)) == -1) perror Client:bind\n ); /* trasmetti un messaggio attraverso il socket s verso aiuto: aiuto.sun_family = AF_UNIX; strcpyaiuto.sun_path, endpoint1 ); if sendtos, msg, strlenmsg) +1, 0, &aiuto, strlenaiuto.sun_path)+2) == -1) perror Client: error send\n ); printf ATTESA DATI DAL SERVER \n ); /* leggi dal socket s: if cc= reads, buf, BUFLEN)) == -1) perror Client: read\n ); printf Client: ricevuto -> %s\n, buf); unlink endpoint2 );

7 /* servu11.c /* Il programma e una variante di servu1.c Il programma da utilizzarsi in combinazione con cliu11.c, genera un socket, nel sominio Unix, di nome endpoint1, attraverso il quale questo programma si mette in comunicazione con il socket, nel dominio di Unix, di nome endpoint2, generato dal programma cliu1.c, per ricevere un messaggio dal programma cliu1.c e poi per inviargli un messaggio di risposta. Tale esempio mostra la bidirezionalita del socket endpoint1. #include <sys/un.h> /* UNIX domain #define BUFLEN 1024 char *msg = Messaggio dal server ; int s; int addrlen = sizeofstruct sockaddr_un); struct sockaddr_un appoggio; /* struct di appoggio che consente di effettuare la recvfrom struct sockaddr_un serv_sock; char buf[buflem]; /* genera il socket nel dominio Unix: s= socketaf_unix, SOCK_DGRAM, 0); if s== -1) perror Server: socket\n ); else printf generazione del socket %d: ok\n, s); /* fai la bind: serv_sock.sun_family = AF_UNIX; strcpyserv_sock.sun_path, endpoint1 ); if binds, &serv_sock, sizeofstruct sockaddr_un)) == -1) perror Server: bind\n ); if recvfroms, buf, BUFLEN, 0, &appoggio, &addrlen) == -1 ) perror Server: recvfrom\n ); printf MESSAGGIO DAL CLIENT: %s \n, buf); if sendtos, msg, strlenmsg) -1, 0, &appoggio, addrlen) == -1) perror Server: send\n ); unlink endpoint1 );

8 /* cli1.c /* sintassi: clisun <hostname> < port number socket destinatario> #include <netinet/in.h> #include <netdb.h> #define DATA Tanto va la gatta a lardo, che ci rimette lo zampino mainargc, argv) int argc; char *argv[]; int so; struct sockaddr_in aiuto; struct hostent *hp, *gethostbyname); so= socketaf_inet, SOCK_DGRAM, 0); if so <0) perror errore nella creazione del socket\n ); hp= gethostbynameargv[1]); if hp == 0) fprintfstderr,, %s: host0 sconosciuto\n, argv[1]); bcopychar *) hp->h_addr, char*) &aiuto.sin_addr, hp->h_length); aiuto.sin_family= AF_INET; aiuto.sin_port= htonsatoiargv[2])); if sendtoso, DATA, sizeofdata), 0, struct sock_addr *) &aiuto, sizeofaiuto)) <0) perror errore nell invio del messaggio datagram\n ); closeso);

9 /* serv1.c /* Da usarsi in congiunzione con cli1.c #include <netinet/in.h> int sock, lun; struct sockaddr_in nome; char buf[1024]; struct sockaddr_in *from; int fromlen; fromlen= sizeofstruct sockaddr_in); sock= socketaf_inet, SOCK_DGRAM, 0); /* fai la bind con una wildcard: nome.sin_family= AF_INET; nome.sin_addr.s_addr= INADDR_ANY; nome.sin_port = 0; if bindsock, struct sockaddr *) &nome, sizeofnome) ) <0) perror errore nella binding\n ); lun= sizeofnome); if getsocknamesock, struct sockaddr *) &nome, &lun) < 0) perror errore nel trovare la porta associata al socket nome\n ); printf porta del socket #%d\n, ntohsnome.sin_port)); /* if readsock, buf, 1024) < 0) perror errore nella ricezione del pacchetto di datagram\n ); if recvfromsock, buf, sizeofbuf), 0, struct sockaddr *) from, &fromlen) < 0) perror errore nella ricezione del pacchetto di datagram\n ); printf %s\n, buf); closesock); exit0);

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ&

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& 3ULPRHVHUFL]LR6RFNHWVWUHDPFRQULGLUH]LRQH Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

IPC Inter Process Communication

IPC Inter Process Communication Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni

Dettagli

Esempio 1: stampa locale di file remoto

Esempio 1: stampa locale di file remoto Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente

Dettagli

Program m azione di Sistem a 6

Program m azione di Sistem a 6 Program m azione di Sistem a 6 Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 6

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 6 UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica, Elettronica e delle Telecomunicazioni a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 6 1 Socket

Dettagli

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC) - - 2 Parte -

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC) - - 2 Parte - Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012 - Comunicazione Tra Processi (IPC) - - 2 Parte - 1 Sommario Comunicazione tra processi su macchine diverse in rete: Socket TCP o Socket Stream

Dettagli

Guida all' uso dei sockets nella programmazione in C

Guida all' uso dei sockets nella programmazione in C Guida all' uso dei sockets nella programmazione in C ( pseudo-traduzione personalizzata di "Beej's Guide to Network Programming" ) (Prima parte) INTRODUZIONE Finalmente ho trovato una guida chiara e semplice

Dettagli

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat.

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat. Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio

Dettagli

Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor. Alcuni tipi predefiniti di socket

Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor. Alcuni tipi predefiniti di socket Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor Le socket costituiscono un fondamentale strumento di comunicazione, basato sullo scambio di messaggi,

Dettagli

Acknowledgment: Prof Vincenzo Auletta, Università di Salerno. Approfondimento alla programmazione distribuita

Acknowledgment: Prof Vincenzo Auletta, Università di Salerno. Approfondimento alla programmazione distribuita Reti Informatiche Approfondimento alla programmazione distribuita Acknowledgment: Prof Vincenzo Auletta, Università di Salerno Introduzione API send e receive bloccanti e non API select Socket UDP Esempio

Dettagli

Applicazione distribuita

Applicazione distribuita La programmazione di applicazioni distribuite in C Il concetto di applicazione distribuita L architettura di una applicazione distribuita Il paradigma a scambio di messaggi Il paradigma client-server Il

Dettagli

Inter-process communication: socket

Inter-process communication: socket Le Socket Inter-process communication: socket Abbiamo visti alcune tipologie di Inter-process communication: Anonymous pipes FIFOs o named pipes Le socket di comunicazione si pongono nell'ipc per realizzare:

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura

Dettagli

Socket. [Pagina intenzionalmente vuota] 2: Socket (10 3 2003) slide 2:1/50 (p.24)

Socket. [Pagina intenzionalmente vuota] 2: Socket (10 3 2003) slide 2:1/50 (p.24) Socket [Pagina intenzionalmente vuota] (10 3 2003) slide 2:1/50 (p.24) Concetto di socket Disponibili su tutti i sistemi odierni Endpoint di canale (logico) di comunicazione tra processi, anche remoti

Dettagli

Architettura e servizi Internet

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

Dettagli

Una semplice applicazione client/server 1

Una semplice applicazione client/server 1 Una semplice applicazione client/server 1 Il nostro obiettivo In questa parte del corso implementeremo un applicazione client/server che usa i socket Internet disponibili nei sistemi Unix/Linux. Nello

Dettagli

Interazione (TCP) Client-Server con le socket

Interazione (TCP) Client-Server con le socket Interazione (TCP) Client-Server con le socket D. Gendarmi Interazione TCP Client/Server Server 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a. Accettare

Dettagli

T.A.R.I. Socket (ICT, AL)

T.A.R.I. Socket (ICT, AL) Internet Applications (Client-Server Concept, Use of Protocol Ports, Socket API, DNS, E-mail, TELNET, FTP) Funzionalità Livello di trasporto e livelli sottostanti Comunicazione base Disponibilità Livello

Dettagli

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

SC per Inter Process Comminication. Comunicazione fra macchine diverse: socket SC per Inter Process Comminication Comunicazione fra macchine diverse: socket 1 Sockets File speciali utilizzati per connettere due o più processi con un canale di comunicazione i processi possono risiedere

Dettagli

Socket TCP. seconda parte

Socket TCP. seconda parte Socket TCP seconda parte Schema della connessione Computer 1 127.43.18.1 indirizzo I1 indirizzo I2 Computer 2 143.225.5.3 porta 45000 socket porta 5200 socket processo client processo server socket(...)

Dettagli

request reply richiesta client processo di servizio processo server principale From - Valeria Cardellini, Corso Sist. Distr. A.A.

request reply richiesta client processo di servizio processo server principale From - Valeria Cardellini, Corso Sist. Distr. A.A. Applicazioni di rete Forniscono i servizi di alto livello utilizzati dagli utenti Determinano la percezione di qualità del servizio (QoS) che gli utenti hanno della rete sottostante Programmazione di applicazioni

Dettagli

Programmazione di applicazioni di rete

Programmazione di applicazioni di rete Programmazione di applicazioni di rete Valeria Cardellini Università di Roma Tor Vergata Applicazioni di rete Applicazioni di rete - forniscono i servizi di alto livello utilizzati dagli utenti - determinano

Dettagli

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat.

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat. Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio di 1 punto

Dettagli

Basic Sniffer Tutorial

Basic Sniffer Tutorial Basic Sniffer Tutorial LnZ Aspinall S.P.I.N.E. Research Group April 2, 2003 Abstract Con questo semplice esempio cerchero di mostrarvi l uso di base delle

Dettagli

Creare un'elementare backdoor in C in ambiente UNIX

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

Dettagli

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC)- - 1 Parte -

Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012. - Comunicazione Tra Processi (IPC)- - 1 Parte - Esercitazione di Lab. di Sistemi Operativi 1 a.a. 2011/2012 - Comunicazione Tra Processi (IPC)- - 1 Parte - 1 Sommario Comunicazione tra processi sulla stessa macchina: fifo (qualunque insieme di processi)

Dettagli

Interazione con il DNS Conversioni di Nomi ed Indirizzi

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

Dettagli

Riassunto Reti di calcolatori 2

Riassunto Reti di calcolatori 2 Riassunto Reti di calcolatori 2 by diverse fonti Si ringrazia Zazzu Indice generale Applicazioni...3 FTP File Transfer Protocol...4 Progettazione di un Servizio di Rete La Posta Elettronica...6 Pagine

Dettagli

Socket TCP. prima parte

Socket TCP. prima parte Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd

Dettagli

INTRODUZIONE ALL INTERFACCIA SOCKET DI BERKELEY E.Mumolo IL MODELLO CLIENT/SERVER

INTRODUZIONE ALL INTERFACCIA SOCKET DI BERKELEY E.Mumolo IL MODELLO CLIENT/SERVER INTRODUZIONE ALL INTERFACCIA SOCKET DI BERKELEY E.Mumolo IL MODELLO CLIENT/SERVER NB : TCP/IP = famiglia di protocolli Il modello client/server e alla base della maggior parte delle applicazioni distribute

Dettagli

INTERNET DOMAIN SOCKETS (Cap.59)

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

Dettagli

Le Opzioni per i Socket

Le Opzioni per i Socket Advanced TCP Socket Le Opzioni per i Socket Le opzioni per i socket sono controllate mediante tre tipi di primitive: 1) le funzioni getsockopt() e setsockopt(), che permettono di configurare alcune caratteristiche

Dettagli

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso DATAGRAM SOCKET Angelastro Sergio Diomede Antonio Viterbo Tommaso Definizione supporta i datagram privo di connessione messaggi inaffidabili di una lunghezza massima prefissata il protocollo UDP supporta

Dettagli

Esercitazioni Socket

Esercitazioni Socket Esercitazioni Socket Ping-Pong TCP Si realizzi una coppia di processi: il primo e' un server che pubblica un socket (SOCK_STREAM, TCP) ad un certo indirizzo (porta passata come parametro sulla riga di

Dettagli

Il livello di Trasporto del TCP/IP

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

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

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

Laboratorio di Reti di Calcolatori

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

Dettagli

Socket 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

Applicazione Client-Server con Server Concorrente Specifiche

Applicazione Client-Server con Server Concorrente Specifiche Applicazione Client-Server con Server Concorrente Specifiche Il progetto consiste nello sviluppo di un'applicazione client/server. Client e server devono comunicare tramite socket TCP.. Il server deve

Dettagli

Esercitazione [6] Client/Server con Socket

Esercitazione [6] Client/Server con Socket Esercitazione [6] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di

Dettagli

Laboratorio di Reti di Calcolatori

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

Dettagli

Progetto fine al superamento del corso di Sistemi Operativi. Http server proxy Http web monitor

Progetto fine al superamento del corso di Sistemi Operativi. Http server proxy Http web monitor Progetto fine al superamento del corso di Sistemi Operativi Http server proxy Http web monitor Sviluppato da: Santoro Carlo Maurizio Sviluppo terminato in Luglio/2006 Obiettivo: Progettare ed implementare

Dettagli

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di rogrammazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12

Dettagli

INGEGNERIA DEL WEB. VinX

INGEGNERIA DEL WEB. VinX INGEGNERIA DEL WEB VinX Indice 1 Programmazione di applicazioni di rete 1 1.1 Applicazioni di rete........................................ 1 1.2 Modello Client/Server......................................

Dettagli

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

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

Dettagli

Elementi di programmazione con interfaccia Socket

Elementi di programmazione con interfaccia Socket Struttura generale per stream sockets Socket() Well-Known Port Bind() Elementi di programmazione con interfaccia Socket Cenni di programmazione secondo la nuova interfaccia Socket definita nella RFC 2553

Dettagli

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

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 maximiliano.marchesi@studenti.unipr.it Sommario Introduzione..................................................................................

Dettagli

programmazione distribuita Introduzione Introduzione alla programmazione distribuita

programmazione distribuita Introduzione Introduzione alla programmazione distribuita Reti Informatiche Introduzione alla programmazione distribuita Introduzione Richiami di Programmazione C Differenze principali C/C++ 2 1 Definizioni di variabili Le variabili possono essere definite solo

Dettagli

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

Basi di network programming sotto Unix/Linux (draft version) Claudio Piciarelli Basi di network programming sotto Unix/Linux (draft version) Claudio Piciarelli 20 dicembre 2004 ii Indice 1 Introduzione 1 1.1 Notazioni e terminologia..................................... 1 2 Un po di

Dettagli

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

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

Dettagli

Paradigma client-server

Paradigma client-server Interazione Client Server (socket) Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 15 CliSer - 1/31 Paradigma client-server Le applicazioni utente devono interagire con

Dettagli

Una prima applicazione in C per l utilizzo delle socket

Una prima applicazione in C per l utilizzo delle socket Una prima applicazione in C per l utilizzo delle socket Richiamo sulle socket Socket in Windows (WinSock) Differenze tra sistemi operativi D. Gendarmi Socket API API: Application Programming Interface

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread-

Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -

Dettagli

Interprocess Communications - II. Franco Maria Nardini

Interprocess Communications - II. Franco Maria Nardini Interprocess Communications - II Franco Maria Nardini XSI IPC Tre tipi di IPC introdotti da System V: semafori shared memory code di messaggi Comunicazioni tra processi su stesso host Tutte consentono

Dettagli

Guida di Beej alla Programmazione di Rete

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

Dettagli

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12

Dettagli

Laboratorio di Reti di Calcolatori

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

Dettagli

Opzioni per le Socket

Opzioni per le Socket Opzioni per le Socket A.A. 2005/06 Opzioni per le Socket Ogni socket aperto ha delle proprietà che ne determinano alcuni comportamenti Le opzioni del socket consentono di modificare tali proprietà Ogni

Dettagli

Networking. Apertura di uno stream sulla rete: URL

Networking. Apertura di uno stream sulla rete: URL Networking Il networking in java è supportato nel package java.net, che permette, mediante classi e metodi opportuni, di trasferire informazioni attraverso la rete utilizzando: protocolli derivati dal

Dettagli

Nuker v1.0 by ALwarrior

Nuker v1.0 by ALwarrior Nuker v1.0 by ALwarrior Avvertenze: Declino ogni responsabilità da un uso improprio di questa guida, a fini di danneggiare altri sistemi o provocare perdita di dati ad altri utenti. Introduzione: Cos è

Dettagli

Programmazione dei socket di rete in GNU/Linux

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

Dettagli

I Socket in PHP. Introduzione. Gestione degli errori nei socket. Funzioni socket di PHP. (manuale PHP)

I Socket in PHP. Introduzione. Gestione degli errori nei socket. Funzioni socket di PHP. (manuale PHP) I Socket in PHP (manuale PHP) Introduzione Questa estensione implementa una interfaccia a basso livello verso i socket, fornendo la possibilità di agire sia come server sia come client. Per l'utilizzo

Dettagli

Laboratorio di Programmazione in rete

Laboratorio di Programmazione in rete Laboratorio di rogrammazione in rete Introduzione alla programmazione C di socket A.A. 2005/06 Comunicazione tra computer Come far comunicare più computer su una rete? Una collezione di protocolli: TC/I

Dettagli

Programmazione di rete: 1. Architettura di Internet 2. Richiami di TCP/IP 3. Sockets in sistemi UNIX/Windows

Programmazione di rete: 1. Architettura di Internet 2. Richiami di TCP/IP 3. Sockets in sistemi UNIX/Windows Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Programmazione di rete: 1. Architettura di Internet 2. Richiami di

Dettagli

I puntatori e l allocazione dinamica di memoria

I puntatori e l allocazione dinamica di memoria I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in

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

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI SIMULAZIONE PROVA SCRITTA ESAME DI STATO PER LA DISCIPLINA di SISTEMI In un azienda, costituita da due edifici, uno per gli uffici e l altro per l area produttiva con annesso magazzino, si vuole realizzare

Dettagli

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

IPC System V. Code di messaggi

IPC System V. Code di messaggi IPC System V Code di messaggi Panoramica coda di messaggi una lista concatenata di messaggi, FIFO semaforo un contatore condiviso, atomicamente modificabile memoria condivisa uno spazio di memoria accessibile

Dettagli

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel

Dettagli

Berkeley Socket La programmazione dei Berkeley Socket per esempi.

Berkeley Socket La programmazione dei Berkeley Socket per esempi. Berkeley Socket La programmazione dei Berkeley Socket per esempi Ing Alessio Palma Note legali e licenza d'uso Questo documento non è assolutamente da considerarsi di pubblico dominio, viene concessa la

Dettagli

Il modello Client/Server. La comunicazione

Il modello Client/Server. La comunicazione Il modello Client/Server La comunicazione Se sintetizziamo uno scenario completo possiamo identificare diverse interfacce di comun icazione: Interfaccia di comuncazione: insieme delle API necessarie alla

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3. 1 strace : visualizzazione delle system call invocate da un processo

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3. 1 strace : visualizzazione delle system call invocate da un processo UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica a.a. 2005-2006 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 strace : visualizzazione delle system call

Dettagli

ESEMPI DI APPLICAZIONI ONC-RPC

ESEMPI DI APPLICAZIONI ONC-RPC ESEMPI DI APPLICAZIONI ONC-RPC Applicazione 1: Procedura remota per la somma di due numeri Applicazione 2: Procedura remota per la realizzazione di una chat Annarita Fierro matricola: 628404 Applicazione

Dettagli

LIBRERIA SOCKET EFUNZIONI DI NETWORKING. Versione 1.0

LIBRERIA SOCKET EFUNZIONI DI NETWORKING. Versione 1.0 LIBRERIA SOCKET EFUNZIONI DI NETWORKING Versione 1.0 Vito Asta, febbraio 2000 N.B. La presente dispensa accenna solo brevemente agli argomenti trattati e alle funzioni viste nel corso delle esercitazioni;

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-

Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -

Dettagli

Funzioni. Il modello console. Interfaccia in modalità console

Funzioni. Il modello console. Interfaccia in modalità console Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3

CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica-Informatica-Telecomunicazioni a.a. 2001-2002 CORSO DI SISTEMI OPERATIVI A - ESERCITAZIONE 3 1 Trasferimento

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Sicurezza delle reti. Monga. Ricognizione. Scanning Breve ripasso socket Network mapping Port Scanning NMAP. Le tecniche di scanning

Sicurezza delle reti. Monga. Ricognizione. Scanning Breve ripasso socket Network mapping Port Scanning NMAP. Le tecniche di scanning Sicurezza dei sistemi e delle 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it Port Lezione V: Scansioni Port a.a. 2015/16 1 cba 2011 15 M.. Creative Commons

Dettagli

Ret e i Inf n o f rm r a m t a ich c e Terza esercitazione

Ret e i Inf n o f rm r a m t a ich c e Terza esercitazione Reti Informatiche Terza esercitazione Introduzione Richiami di Programmazione C Differenze principali C/C++ 2 Definizioni di variabili Le variabili possono essere definite solo all inizio di un blocco

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

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture

Concetti chiave. Struct. Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Concetti chiave Struct Variabili strutturate: il tipo struct Elementi di una struttura typedef e struct Array di strutture Struct Per aggregare elementi di tipo diverso si utilizza una struttura. struct

Dettagli

Problem solving elementare su dati vettoriali

Problem solving elementare su dati vettoriali Problem solving elementare su dati vettoriali Introduzione Verifiche su sequenze di dati Selezione o ricerca di dati 2 2006 Politecnico di Torino 1 Introduzione (1/2) I problemi di verifica consistono

Dettagli

Per l officina periferica possiamo pensare che un collegamento a 100Mb con cavo di categoria 5 vada bene.

Per l officina periferica possiamo pensare che un collegamento a 100Mb con cavo di categoria 5 vada bene. PARTE 2- Seguito cablaggio e Programmazione di rete Considerazioni sulle scelte di cablaggio. Lo standard di riferimento è EIA. Una qualsiasi rete deve essere ripartita in tre zone: core, distribution,

Dettagli

Esercizio sulla gestione di file in Unix

Esercizio sulla gestione di file in Unix Esercizio sulla gestione di file in Unix 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra due processi (padre e figlio) mediante

Dettagli

Prerequisiti. Saper usare un editor Saper usare un compilatore Saper usare un sistema unix (linux/bsd) Rudimenti di programmazione in C.

Prerequisiti. Saper usare un editor Saper usare un compilatore Saper usare un sistema unix (linux/bsd) Rudimenti di programmazione in C. Programmazione di rete in C Dario Maggiorini dario@dico.unimi.it Università degli Studi di Milano Dipartimento di Informatica e Comunicazione Obiettivi Imparare a programmare con le socket Progettare un

Dettagli

Strumenti di Comunicazione per lo scambio di messaggi

Strumenti di Comunicazione per lo scambio di messaggi Strumenti di Comunicazione per lo scambio di messaggi Livelli di strumenti diversi Livelli 7 Applicazione Named Pipe Interfacce di comunicazione TLI Mail Slot RPC APPC UNIX per la comunicazione/sincronizzazione

Dettagli

CdL MAGISTRALE in INFORMATICA A.A. 2014-2015. corso di Sistemi Distribuiti. Le Socket

CdL MAGISTRALE in INFORMATICA A.A. 2014-2015. corso di Sistemi Distribuiti. Le Socket CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di Sistemi Distribuiti 6. Strumenti per l IPC : dalle socket a RPC/RMI Prof. S.Pizzutilo Le Socket Una socket è una astrazione software rappresentante

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

Raw socket. L intercettazione di un pacchetto IP

Raw socket. L intercettazione di un pacchetto IP Raw socket Il sistema compie molte operazioni sui livelli bassi della rete, ma che non sono immediatamente visibili all utente tramite l interfaccia delle socket L intercettazione di un pacchetto IP Anche

Dettagli

Uso di sniffer ed intercettazione del traffico IP

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

Dettagli

Gestione dei processi

Gestione dei processi Gestione dei processi Dormire unsigned int sleep(unsigned int); Attende un numero specificato di secondi a meno che non si verifichi un segnale Restituisce 0 se l'attesa è terminata senza interruzioni,

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che

Dettagli