Introduzione alla programmazione C di socket
|
|
- Faustino Viviani
- 6 anni fa
- Visualizzazioni
Transcript
1 Introduzione alla programmazione C di socket (testo di riferimento : M. J. Donahoo, K. L. Calvert, TCP/IP Sockets in C: Practical Guide for Programmers. Morgan Kaufman Publishers. ) A.A. 2005/06 Una rete TCP/IP Organizzazione a livelli: relazione tra protocolli, applicazioni e API socket Socket API Implementazione dei protocolli (S.O.) Socket API TCP TCP IP HOST canale IP canale Es: ethernet Router IP HOST 1
2 Indirizzi La comunicazione tra programmi è possibile se si conosce l indirizzo dei programmi che devono comunicare Indirizzo Internet (usato da IP) identificatori a 32 bit notazione: identifica una interfaccia xxx.xxx Numero di porta (interpretato da TCP o UDP) identificatori a 16 bit (sempre in relazione ad un IP) range: Well-Known: Registered: Dynamic (private) Aplicazione www Porta Una Socket: una visione di insieme Una socket è un dispositivo che consente la comunicazione (trasferimento di dati) tra due processi su internet, in una LAN, su un singolo computer Esistono varie famiglie di socket. Ogni famiglia riunisce i socket che utilizzano gli stessi protocolli (Protocol Family) sottostanti, supporta un sottoinsieme di stili di comunicazione e possiede un proprio formato di indirizzamento (Address Family) Alcuni esempi di famiglie Unix Domain sockets: file in una directory di un computer local host. Consentono il trasferimento di dati tra processi sulla stessa macchina Unix Internet socket (AF_INET): consentono il trasferimento di dati tra processi posti su macchine remote connesse tramite una LAN o Internet 2
3 Una Socket: una visione di insieme (cont.) Il tipo di una socket definisce una modalità di comunicazione che una socket usa per inviare dati: Streaming Socket (SOCK_STREAM): Fornisce una connessione sequenziale, affidabile e full-duplex. Il protocollo TCP è basato su questo tipo di socket. Datagram socket (SOCK_DGRAM): Supporta i datagrammi (privo di connessione, messaggi inaffidabili di una lunghezza massima prefissata). Il protocollo UDP è basato su questo tipo di socket Osserviamo che: AF_INET + SOCK_STREAM determineranno una connessione TCP, AF_INET + SOCK_DGRAM determineranno una trasmissione UDP Socket, Protocolli e Porte su un singolo host Una socket che usa la famiglia di protocolli TCP/IP è univocamente determinata da un indirizzo internet, un protocollo di comunicazione (TCP o UDP) e un numero di porta Applicazioni Socket TCP Applicazioni Socket UDP Porte TCP TCP UDP Porte UDP IP Host Sockets bound to ports Descriptor reference 3
4 Una Socket: una visione di insieme (cont.) Nel gergo socket uno dei processi che comunicano è chiamato Server e l altro Client. Tra i due processi il server è quello che ha controllo maggiore, poiché è il processo che inizialmente crea la socket. Più client possono comunicare attraverso la stessa socket, ma solo un server può essere associato ad una definita socket. Il fatto che un programma agisca come client o come server determina un differente uso delle API Socket Il client ha bisogno di conoscere l indirizzo del server (ma non il viceversa) Il Server può apprendere informazioni sull indirizzo del client una volta stabilita la connessione Programmazione socket Lo sviluppatore ha il controllo di tutto ciò che sta sul lato del livello applicativo della socket, ma ha poco controllo sul lato a livello di trasporto (alcuni parametri) TCP UDP Livello di Livello di trasporto IP Host 4
5 Programmazione socket (cont.) Il client deve contattare il server Il programma server deve essere in esecuzione come processo Il programma server deve avere una porta (socket) che dia il benvenuto al contatto iniziale stabilito da un processo client in esecuzione Durante l handshake a tre vie: il TCP server crea un nuova socket (dedicata a quel particolare client socket di connessione) Il client contatta il server tramite: la creazione di una socket locale la specifica di un indirizzo del processo server (IP, numero di porta relativi al processo) Dopo la creazione della socket nel client: TCP avvia un handshake a tre vie e stabilisce una connessione TCP con il server Interazione TCP Client/Server Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local address alla socket 4. Settare la socket all ascolto 5. Iterativamente: a. Accettare una nuova connessione b. Inviare e ricevere dati c. Chiudere la connessione Client 1. (Inizializzare una WSA) 2. Creare una Socket 3. Connettersi al server 4. Inviare e ricevere dati 5. Chiudere la connessione 5
6 Una astrazione di una socket: Strutture dati associate ad una socket TCP Closed Descrittori Struttura di una socket L applicazione fa riferimento alla struttura di una socket tramite descrittori differenti processi possono fare riferimento alla stessa struttura socket informazioni associate alla struttura socket: code di ricezione e invio informazioni sullo stato dell handshake (per una socket TCP) indirizzi internet Il ciclo di vita di una socket TCP Notazione Eventi all interno dell applicazione che causano il cambiamento di stato di una struttura socket connect() blocca Indirizzi:A.B.C.D = client W.X.Y.Z server Closed = porta del server Connecting P A.B.C.D W.X.Y.Z Handshake completato Established P A.B.C.D W.X.Y.Z Eventi come l arrivo di messaggi, ecc.. 6
7 Interazione TCP Client/Server Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local address alla socket 4. Settare la socket all ascolto 5. Iterativamente: a. Accettare una nuova connessione b. Inviare e ricevere dati c. Chiudere la connessione Client 1. (Inizializzare una WSA) 2. Creare una Socket 3. Connettersi al server 4. Inviare e ricevere dati 5. Chiudere la connessione Il ciclo di vita di una socket TCP Stabilire una connessione (lato client) client Closed Una socket creata fa riferimento ad un protocollo specifico ma non ha indirizzo IP e numero diporta 7
8 Il ciclo di vita di una socket TCP Stabilire una connessione (lato client) client Closed connect() con IP W.X.Y.Z e porta blocca Completa i campi; Invia richiesta di connes. al server Connecting P A.B.C.D W.X.Y.Z P non in uso da altre socket indirizzo dell interfaccia attraverso cui vengono inviati i pacchetti al server Il ciclo di vita di una socket TCP Stabilire una connessione (lato client) client Closed connect() con IP W.X.Y.Z e porta blocca Completa i campi; Invia richiesta di connes. al server Connecting P A.B.C.D W.X.Y.Z Handshake a tre vie una richiesta di connessione client server Un ack server client Un ack client server 8
9 Il ciclo di vita di una socket TCP Stabilire una connessione (lato client) client connect() con IP W.X.Y.Z e porta blocca Closed Completa i campi; Invia richiesta di connes. al server Connecting P A.B.C.D W.X.Y.Z Handshake a tre vie completato Established P A.B.C.D W.X.Y.Z client il client considera la Il ciclo connessione di stabilita vita non di una socket TCP appena riceve l ack dal server se il server non accetta una connessione invia un messaggio connect() con IP W.X.Y.Z e porta Stabilire una connessione (lato client) blocca Closed Completa i campi; Invia richiesta di connes. al server Connecting P A.B.C.D W.X.Y.Z Handshake a tre vie completato Established P A.B.C.D W.X.Y.Z 9
10 Il ciclo di vita di una socket TCP(cont.) Setup della socket (lato server) server Closed il server deve legare la socket ad una porta locale nota al client () Il ciclo di vita di una socket TCP(cont.) Setup della socket (lato server) server Closed bind() con porta returns Setta indirizzo locale e porta Closed INADDR_ANY nel caso in cui il server ha più di un IP, consente alla socket di ricevere connessioni indirizzate da tutti i suoi IP 10
11 Il ciclo di vita di una socket TCP(cont.) Setup della socket (lato server) server ualunque richiesta di connessione che avviene prima della listen() verrà rigettata bind() con porta listen() returns Return Closed Setta indirizzo locale e porta Closed INADDR_ANY Setta all ascolto Listening nuove conn. INADDR_ANY Il ciclo di vita di una socket TCP(cont.) Accettare la connessione (lato server) accept() Blocca sino alla connessione con un client Listening nuove conness. 11
12 Il ciclo di vita di una socket TCP(cont.) Gestione della richiesta di connessione in entrata Richiesta di connessione da A.B.C.D/P Listening nuove connessi. Processo trasparente Creare una nuova socket per la connessione, settare gli indirizzi e continuare l handshake Connecting W.X.Y.Z P A.B.C.D ack server client IP di destinazione IP e porta del mittente Il ciclo di vita di una socket TCP(cont.) Gestione della richiesta di connessione in entrata Richiesta di connessione da A.B.C.D/P Listening nuove connessi. Processo trasparente Creare una nuova socket per la connessione, settare gli indirizzi e continuare l handshake Connecting W.X.Y.Z P A.B.C.D il numero di porta locale è lo stesso per le due socket La socket originale non cambia stato 12
13 Il ciclo di vita di una socket TCP(cont.) Gestione della richiesta di connessione il server non in entrata Richiesta di connessione da A.B.C.D/P Listening nuove connessi. Processo trasparente Creare una nuova socket per la connessione, settare gli indirizzi e continuare l handshake Connecting W.X.Y.Z P A.B.C.D considera la connessione stabilita finchè non viene inviato il terzo messaggio Established Handshake completato W.X.Y.Z P A.B.C.D Il ciclo di vita di una socket TCP(cont.) Accettare la connessione (lato server) Listening nuove conness. accept() Blocca sino alla connessione con un client Evento descritto in Richiesta di connessione in entrata Established W.X.Y.Z P A.B.C.D Ritorna il descrittore per questa socket (socket di connessione) Rimuove la socket dalla lista di nuove conness. Listening Nuove connessi. 13
14 Il ciclo di vita di una socket TCP(cont.) Chiudere la connessione (indipendente dal lato) close() Returns immediately Established Ha inizio un P handshake di chiusura, Il descrittore A.B.C.D viene deallocato W.X.Y.Z un msg di chiusura viene inviato all altra parte (fine dati da trasferire) un ack per questo msg viene inviato Terminazione senza perdita di dati in transito Il ciclo di vita di una socket TCP(cont.) Chiudere la connessione (indipendente dal lato) close() Returns immediately Established Ha inizio un P handshake di chiusura, Il descrittore A.B.C.D viene deallocato W.X.Y.Z un msg di chiusura viene inviato all altra parte (fine dati da trasferire) un ack per questo msg viene ricevuto La connessione viene chiusa completamente solo quando un handshake simile avviene in direzione opposta Terminazione senza perdita di dati in transito 14
15 Il ciclo di vita di una socket TCP(cont.) Chiudere la connessione (indipendente dal lato) close() Returns immediately Established Ha inizio un Closed handshake di P chiusura, P Il descrittore A.B.C.D viene A.B.C.D deallocato W.X.Y.Z W.X.Y.Z Hs msg Half-Closed P A.B.C.D W.X.Y.Z Terminazione senza perdita di dati in transito Il ciclo di vita di una socket TCP(cont.) Chiudere la connessione (indipendente dal lato) close() Returns immediately Established Ha inizio un Closed handshake di P chiusura, P Il descrittore A.B.C.D viene A.B.C.D deallocato W.X.Y.Z W.X.Y.Z Hs msg Half-Closed P A.B.C.D W.X.Y.Z Hs ack Terminazione senza perdita di dati in transito Time-wait P A.B.C.D W.X.Y.Z 15
16 Funzione socket() Crea una socket dedicata ad un fornitore di servizi specifico SOCKET socket( int af, int type, int protocol ); Tipo SOCK_STREAM SOCK_DGRAM Address family (AF_INET: Internet Address Family) Significato Tipo di socket Fornisce una connessione sequenziale, affidabile e full-duplex. Il protocollo TCP è basato su questo tipo di socket. Supporta i datagrammi (privo di connessione, messaggi inaffidabili di una lunghezza massima prefissata). Il protocollo UDP è basato su questo tipo di socket. Protocollo da usare con la socket per l address family indicata (solitamente posto a 0 indica il protocollo derivato dalla coppia [af, type]) Funzione socket(): valori di ritorno Crea una socket dedicata ad un fornitore di servizi specifico SOCKET socket( int af, int type, int protocol ); La funzione restituisce un intero che è interpretato come un descrittore che referenzia la nuova socket in caso di successo. Altrimenti restituisce un codice di errore 16
17 Funzione socket(): valori di ritorno Crea una socket dedicata ad un fornitore di servizi specifico SOCKET socket( int af, int type, int protocol ); La funzione restituisce un intero che è interpretato come un descrittore che referenzia la nuova socket in caso di successo. Altrimenti restituisce un codice di errore ATTENZIONE!!! Una applicazione client usa indirizzo IP e porta per connettersi La funzione crea un socket senza nome Bind() Address Family Indirizzo IP Porta che identifica l applicazione Funzione bind() Associa un nome alla socket creata in precedenza int bind( SOCKET s, const struct sockaddr name, int namelen); Descrittore di un socket Indirizzo da assegnare alla socket Lunghezza in byte di name 17
18 Struttura sockaddr_in La struttura sockaddr è interpretata differentemente a seconda dei contesti determinati dalle differenti address family (AF_XXXX). Forma di sockaddr In AF_INET (con protocollo IPv4) struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; Un puntatore ad una sockaddr non è rigorosamente interpretato come tale Le funzioni Winsock che fanno uso di un puntatore ad una struttura di tipo sockaddr devono necessariamente effettuare una operazione di cast bind( m_socket, (SOCKADDR) &service, sizeof(service) Funzione bind(): valori di ritorno Associa un nome alla socket creata in precedenza int bind( SOCKET s, const struct sockaddr name, int namelen); La funzione restituisce O in caso di successo. Altrimenti restituisce un codice di errore Per il TCP/IP se la porta è specificata come zero, il fornitore di servizi assegna una porta tra 1024 e 5000 L applicazione può usare la funzione getsockname (dopo la bind) per apprendere l indirizzo IP e la porta assegnati 18
19 #include <stdio.h> #include "winsock2.h" un esempio di codice void main() { // Initialize Winsock WSADATA wsadata; int iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= NO_ERROR) printf("error at WSAStartup()\n"); // Create a SOCKET for listening for incoming connection requests SOCKET ListenSocket; ListenSocket = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); if (ListenSocket == INVALID_SOCKET) { printf("error at socket(): %ld\n", WSAGetLastError()); WSACleanup(); return; } // The sockaddr_in structure specifies the address family, IP address, and port for the socket that //is being bound. sockaddr_in service; service.sin_family = AF_INET; service.sin_addr.s_addr = inet_addr(" "); service.sin_port = htons(27015); un esempio di codice (cont.) // Bind the socket. if (bind( ListenSocket, (SOCKADDR) &service, sizeof(service)) == SOCKET_ERROR) { printf("bind() failed.\n"); closesocket(listensocket); return; } WSACleanup(); return; } 19
20 Funzione listen() Setta la socket in uno stato in cui rimane in attesa di richiesta di connessioni int listen( SOCKET s, int backlog); Descrittore di un socket Massima lungezza della coda di connessioni entranti Funzione listen(): valori di ritorno Setta la socket in uno stato in cui rimane in attesa di richiesta di connessioni int listen( SOCKET s, int backlog); Descrittore di un socket Massima lungezza della coda di connessioni entranti La funzione restituisce O in caso di successo. Altrimenti restituisce un codice di errore 20
21 Funzione accept() Consente un tentativo di connessione in entrata su una socket SOCKET accept( SOCKET s, struct sockaddr addr, int addrlen); Descrittore di un socket Puntatore opzionale ad un buffer che riceve l indirizzo dell entità che fa richiesta di connessione Puntatore opzionale checontienela lunghezza di addr Funzione accept() Consente un tentativo di connessione in entrata su una socket SOCKET accept( SOCKET s, struct sockaddr addr, int addrlen); La funzione estrae la prima connessione dalla coda di pendenza delle connessioni sul socket s. Successivamente crea e restituisce un riferimento ad una nuova socket. uesta nuova socket è quella che abbiamo chiamato socket di connessione. Mantiene le stesse prorpieta della socket s 21
22 Funzione connect() Stabilisce una connessione ad una socket specificata int connect( SOCKET s, const struct sockaddr name, int namelen); Descrittore di un socket non connesso Nome della socket con cui dovrebbe essere stabilita la connessione lunghezza di name Funzione connect() Stabilisce una connessione ad una socket specificata int connect( SOCKET s, const struct sockaddr name, int namelen); Per una socket di tipo connectionless (per esempio SOCK_DGRAM), la connect() semplicemente stabilisce un indirizzo di destinazione di default ualunque datagram ricevuto da un indirizzo diverso da quello di destinazione verrà scaricato Se il campo indirizzo della struttura che specifica il name è zero, la socket verrà disconnessa 22
23 #include <stdio.h> #include "winsock2.h" void main() { un esempio di codice // Initialize Winsock WSADATA wsadata; int iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= NO_ERROR) printf("error at WSAStartup()\n"); // Create a SOCKET for connecting to server SOCKET ConnectSocket; ConnectSocket = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { printf("error at socket(): %ld\n", WSAGetLastError()); WSACleanup(); return; } un esempio di codice (cont.) // The sockaddr_in structure specifies the address family, // IP address, and port of the server to be connected to. sockaddr_in clientservice; clientservice.sin_family = AF_INET; clientservice.sin_addr.s_addr = inet_addr( " " ); clientservice.sin_port = htons( ); // Connect to server. if ( connect( ConnectSocket, (SOCKADDR) &clientservice, sizeof(clientservice) ) == SOCKET_ERROR) { printf( "Failed to connect.\n" ); WSACleanup(); return; } printf("connected to server.\n"); WSACleanup(); return; } 23
24 Funzione send() Invia dati ad una socket connessa int send( SOCKET s, const char buf, int len, int flags ); Descrittore di una socket connessa Puntatore al Buffer contenente I dati da trasmettere Indicatore che specifica il modo in cui la chiamata è fatta Lunghezza dei dati in buf, in byte Il flag può essere usato per influenzare il comportamento della funzione Funzione send(): valori di ritorno Invia dati ad una socket connessa int send( SOCKET s, const char buf, int len, int flags ); Descrittore di una socket connessa Buffer contenente I dati da trasmettere Indicatore che specifica il modo in cui la chiamata è fatta Lunghezza dei dati in buf, in byte Il flag può essere usato per influenzare il comportamento della funzione La funzione restituisce il numero di byte trasmessi in caso di successo. Un codice di errore, altrimenti 24
25 Funzione recev() Riceve dati da una socket connessa (o legata ) int recev(socket s, char buf, int len, int flags ); Descrittore di una socket connessa Puntatore al Buffer contenente I dati da ricevere Indicatore che specifica il modo in cui la chiamata è fatta Lunghezza dei dati in buf, in byte Il flag può essere usato per influenzare il comportamento della funzione Interazione UDP Client/Server Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local address alla socket 4. Iterativamente: a. Inviare e ricevere dati b. Chiudere la connessione Client 1. (Inizializzare una WSA) 2. Creare una Socket 3. Inviare e ricevere dati 4. Chiudere la connessione 25
26 Funzione recevfrom() Riceve un datagram e memorizza l indirizzo da cui i dati sono stati inviati int recvfrom( SOCKET s, char buf, int len, int flags, struct sockaddr from, int fromlen); Descrittore di una socket (eventualmente) connessa Lunghezza dei dati in buf, in byte Puntatore opzionale ad una struttura che contiene l indirizzo della socket target Buffer contenente I dati in ingresso Indicatore che specifica il modo in cui la chiamata è fatta Lunghezza dei dati in from, in byte Il flag può essere usato per influenzare il comportamento della funzione La funzione è normalmente usata per socket non orientate alla connessione. L indirizzo locale della socket deve essere noto Per applicazioni Server, questo è fatto esplicitamente con la funzione bind() Il binding esplicito è scoraggiato per applicazioni client (in tal caso la funxzione effettua un binding implicito #include <stdio.h> #include "winsock2.h" void main() { WSADATA wsadata; SOCKET RecvSocket; sockaddr_in RecvAddr; int Port = 27015; char RecvBuf[1024]; int BufLen = 1024; un esempio di codice sockaddr_in SenderAddr; int SenderAddrSize = sizeof(senderaddr); // // Initialize Winsock WSAStartup(MAKEWORD(2,2), &wsadata); // // Create a receiver socket to receive datagrams RecvSocket = socket(af_inet, SOCK_DGRAM, 0); //
27 un esempio di codice (cont.) // Bind the socket to any address and the specified port. RecvAddr.sin_family = AF_INET; RecvAddr.sin_port = htons(port); RecvAddr.sin_addr.s_addr = htonl(inaddr_any); bind(recvsocket, (SOCKADDR ) &RecvAddr, sizeof(recvaddr)); // // Call the recvfrom function to receive datagrams // on the bound socket. printf("receiving datagrams...\n"); recvfrom(recvsocket,recvbuf,buflen,0, (SOCKADDR)&SenderAddr, &SenderAddrSize); // // Close the socket when finished receiving datagrams printf("finished receiving. Closing socket.\n"); closesocket(recvsocket); // // Clean up and exit. printf("exiting.\n"); WSACleanup(); return; } Funzione sendto() Invia dati ad una specifica destinazione int sendto( SOCKET s, const char buf, int len, int flags, const struct sockaddr to, int tolen); Descrittore di una socket (eventualmente) connessa Buffer contenente I dati da trasmettere Lunghezza dei dati in buf, in byte Puntatore opzionale ad una struttura che contiene l indirizzo della socket target Indicatore che specifica il modo in cui la chiamata è fatta Lunghezza dei dati in to, in byte Il flag può essere usato per influenzare il comportamento della funzione La funzione è normalmente usata per socket non orientate alla connessione per inviare datagram ad una specifica socket identificata dai parametri. I parametri to e tolen vengono ignorati in caso di socket orientate alla connessione e la funzione diventa equivalente ad una send() 27
28 Funzione sendto():valori di ritorno Invia dati ad una specifica destinazione int sendto( SOCKET s, const char buf, int len, int flags, const struct sockaddr to, int tolen); Descrittore di una socket (eventualmente) connessa Buffer contenente I dati da trasmettere Lunghezza dei dati in buf, in byte Puntatore opzionale ad una struttura che contiene l indirizzo della socket target Indicatore che specifica il modo in cui la chiamata è fatta Lunghezza dei dati in to, in byte La funzione restituisce il numero di byte trasmessi in caso di successo. Un codice di errore, altrimenti #include <stdio.h> #include "winsock2.h" void main() { un esempio di codice WSADATA wsadata; SOCKET SendSocket; sockaddr_in RecvAddr; int Port = 27015; char SendBuf[1024]; int BufLen = 1024; // // Initialize Winsock WSAStartup(MAKEWORD(2,2), &wsadata); // // Create a socket for sending data SendSocket = socket(af_inet, SOCK_DGRAM, IPPROTO_UDP); 28
29 un esempio di codice (cont.) // // Set up the RecvAddr structure with the IP address of // the receiver (in this example case " ") // and the specified port number. RecvAddr.sin_family = AF_INET; RecvAddr.sin_port = htons(port); RecvAddr.sin_addr.s_addr = inet_addr(" "); // // Send a datagram to the receiver printf("sending a datagram to the receiver...\n"); sendto(sendsocket,sendbuf,buflen,0,(sockaddr ) &RecvAddr, sizeof(recvaddr)); // // When the application is finished sending, close the socket. printf("finished sending. Closing socket.\n"); closesocket(sendsocket); // // Clean up and quit. printf("exiting.\n"); WSACleanup(); return; } Cambiare una applicazione winsock in una socket Unix windows #include <stdio.h> #include <stdlib.h> #include <winsock.h> File header Include tutti tutte le definizioni e i prototipi Per socket(), connect(), send(), recev() Per sockaddrin unix #include <stdio.h> #include <stdlib.h> #include < sys/socket.h > #include <arpa/inet.h> 29
30 Setup dell applicazione Il codice è identico a meno del codice per inizializzare l applicazione windows WSADATA wsadata; Int iresult = WSAStartup(MAKEWORD(2,2), &wsadata); If (iresult!= NO_ERROR) printf( error at WSASturtup\n ); Codice di inizializzazione della libreria winsock comunicazione Il codice è identico Chiusura dell applicazione windows Closesocket(m_socket); WSAcleanup(); Exit(0) De-allocazione delle risorse usate da winsock unix Close(m_socket); Exit(0) 30
31 Gestione dell errore windows #include<stdio.h> #include<stdlib.h> #include<winsock.h> void ErrorManagement(char errormessage) { printf( "Error at socket(): %ld\n", WSAGetLastError() ); WSACleanup(); exit(1); } unix #include<stdio.h> #include<stdlib.h> void ErrorManagement(char errormessage) { perror(errormessage); exit(1); } 31
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
DettagliL uso di Socket UDP. TCP vs. UDP UDP
L uso di Socket UDP TCP TCP vs. UDP UDP 1 Interazione UDP Client/Server Server 1. Creare un socket 2. Assegnare un local address al socket 3. Iterativamente: a. Inviare e ricevere dati 4. Chiudere il socket
DettagliReti (già Reti di Calcolatori )
Reti (già Reti di Calcolatori ) Cenni di Socket Programming Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Socket API Programmazione dei socket Obiettivo:imparare
DettagliLaboratorio 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
DettagliLaboratorio 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
DettagliInterazione (TCP) Client-Server con le socket
Interazione (TCP) Client-Server con le socket D. Gendarmi Interazione TCP Client/Server Server 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a. Accettare
DettagliLaboratorio 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
DettagliLaboratorio 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
DettagliOpzioni 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
DettagliScrittura dei programmi applicativi di rete
Scrittura dei programmi applicativi di rete Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi
DettagliTECN.PROG.SIST.INF. TCP socket in Windows. 2015 - Roberta Gerboni
2015 - Roberta Gerboni Schema logico della comunicazione TCP in linguaggio C mediante bytestream socket. Parte asimmetrica Ruolo passivo bind () Parte asimmetrica Ruolo attivo Parte simmetrica Parte simmetrica
DettagliDATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso
DATAGRAM SOCKET Angelastro Sergio Diomede Antonio Viterbo Tommaso Definizione supporta i datagram privo di connessione messaggi inaffidabili di una lunghezza massima prefissata il protocollo UDP supporta
DettagliSocket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.
Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento
DettagliIPC Inter Process Communication
Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni
DettagliProgrammazione socket. Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2.
Programmazione socket Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2.5 Italia Applicazioni di rete Realizzare un'applicazione di rete
DettagliSocket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.
Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento
DettagliL interfaccia socket
L interfaccia socket Application Programming Interface: API Socket API Procedure base Altre procedure Ordinamento dei byte Interazione client-server orientata alla connessione Interazione client-server
DettagliParadigma client-server
Interazione Client Server (socket) Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 15 CliSer - 1/31 Paradigma client-server Le applicazioni utente devono interagire con
DettagliUna 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
DettagliI Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina
M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura
DettagliEsercitazione [6] Client/Server con Socket
Esercitazione [6] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di
DettagliLo strato di applicazione in Internet
Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,
DettagliLABORATORIO di Reti di Calcolatori
LABORATORIO di Reti di Calcolatori Socket in linguaggio C: protocollo connection-oriented 1 of 15 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione
DettagliProgrammazione in Rete
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 Sommario della
DettagliScrittura dei programmi applicativi di rete
Nota di Copyright RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Questo insieme di trasparenze (detto nel seguito slide) è protetto
DettagliCOMUNICAZIONE TRA PROCESSI REMOTI IN UNIX
A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili
DettagliUna semplice applicazione client/server 1
Una semplice applicazione client/server 1 Il nostro obiettivo In questa parte del corso implementeremo un applicazione client/server che usa i socket Internet disponibili nei sistemi Unix/Linux. Nello
DettagliLa programmazione di rete
La programmazione di rete Introduzione alla programmazione di rete La connessione La trasmissione 20 febbraio 2004 Applicazioni distribuite Applicazione: un insieme di programmi coordinati per svolgere
DettagliLaboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat.
Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio
DettagliReti di Calcolatori - Laboratorio. Lezione 5. Gennaro Oliva
Reti di Calcolatori - Laboratorio Lezione 5 Gennaro Oliva Server basato su I/O Multiplex Per realizzare un server è possibile utilizzare l'i/o Multiplex Un unico processo iterativo gestisce il socket che
DettagliCenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it
Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
DettagliLaboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione
Laboratorio reti AA 2008/2009 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2008/2009 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.
DettagliINTERNET 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
DettagliProgram m azione di Sistem a 6
Program m azione di Sistem a 6 Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale
DettagliUn server di posta (che usa il protocollo SMTP) è identificato dal numero di porta 25.
Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni
DettagliInternetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III.
Internetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III http://gapil.truelite.it/ http://www.linuxdidattica.org/docs/a ltre_scuole/planck/socket/ Client Server Esistono vari modelli di architettura
DettagliSocket TCP. prima parte
Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd
DettagliUDP. User Datagram Protocol. UDP Connectionless
UDP User Datagram Protocol IP fornisce un unreliable datagram service tra gli host I Transport protocols forniscono un servizio di consegna end-to-end tra gli endpoints di una connessione UDP Connectionless
DettagliEsercitazione sulle Socket
Esercitazione sulle Socket Sommario Echo Server Specifica Descrizione programma (TCP Socket) Client UNIX/WIN Server UNIX/WIN Server multithread UNIX/WIN Descrizione programma (UDP Socket) 2 Interazione
DettagliSocket per TCP: Fondamenti
Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette
DettagliProgrammazione di applicazioni di rete
Programmazione di applicazioni di rete Valeria Cardellini Università di Roma Tor Vergata Applicazioni di rete Applicazioni di rete - forniscono i servizi di alto livello utilizzati dagli utenti - determinano
DettagliEsercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat.
Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio di 1 punto
DettagliElementi 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
DettagliLe Reti Informatiche
Le Reti Informatiche modulo 8 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Il Livello di Trasporto: 1 L utente non ha il controllo sulla rete; non può risolvere i problemi di un servizio inadeguato
DettagliLe reti basate su TCP/IP
internet Le reti basate su TCP/IP Una rete di reti è detta internet (con la i minuscola). Una internet è definita fornendo i protocolli per trasferire le informazioni tra le varie reti. Il TCP/IP serve
DettagliIntroduzione 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
DettagliEsempio 1: stampa locale di file remoto
Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente
DettagliGuida all' uso dei sockets nella programmazione in C
Guida all' uso dei sockets nella programmazione in C ( pseudo-traduzione personalizzata di "Beej's Guide to Network Programming" ) (Prima parte) INTRODUZIONE Finalmente ho trovato una guida chiara e semplice
DettagliInstradamento. Fondamenti di Informatica
Instradamento Fondamenti di Informatica Previously on Fondamenti di Livelli e protocolli Livello fisico Fibra, DSL, Ethernet informatica Network Network: ogni nodo può inviare un messaggio a qualsiasi
DettagliMODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti
Dettagliunsigned long inet_addr(cp) char *cp;
/* bcopystru.c #include struct point int x; char *y; ; struct point a, b; struct pint *pta, *ptb; a.x = 5; a.y = pippo ; b = a; printf i valori del secondo point sono: %d %s\n,b.x,b.y); pta=
DettagliIntroduzione ai socket
Introduzione ai socket Socket locali Contiene lucidi tratti da: 2006-2007 Marco Faella, Clemente Galdi, Giovanni Schmid (Università di Napoli Federico II), 2004-2005 Walter Crescenzi(Universita di Roma
DettagliMODELLI ISO/OSI e TCP/IP
PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti wireless
DettagliStrato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP
Strato di trasporto Lo strato di trasporto si colloca al livello 4 dello strato ISO-OSI e svolge il compito di mettere in comunicazione diversi processi software. La comunicazione tra applicazioni avviene
DettagliIPC: InterProcess Communication
IPC: InterProcess Communication Uso di segnali Uso di file processo invia limitata quantità info (solo un tipo di segnale) e manca il mittente del segnale solo tra processi che condividono un file system
Dettaglirequest reply richiesta client processo di servizio processo server principale From - Valeria Cardellini, Corso Sist. Distr. A.A.
Applicazioni di rete Forniscono i servizi di alto livello utilizzati dagli utenti Determinano la percezione di qualità del servizio (QoS) che gli utenti hanno della rete sottostante Programmazione di applicazioni
DettagliIl livello trasporto: Introduzione e protocollo UDP
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori a.a. 2009/10 Roberto Canonico (roberto.canonico@unina.it) Antonio Pescapè (pescape@unina.it) Il livello trasporto: Introduzione e
DettagliTCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi
Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica December 7, 2004 Sommario 1 La suite di protocolli TCP/IP Layer 2 3 4 5 6 Sommario 1 La
DettagliApplicazione 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
DettagliI Socket di Berkeley
I Socket di Berkeley di Francesco Licandro Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università degli studi di Catania A.A. 2004-2005 1 Programmazione su rete Le applicazioni di
DettagliApplicazioni di rete
Applicazioni di rete Programmi in esecuzione su end systems che comunicano attraverso la rete esempio: web server comunica con browser application transport network data link physical Non è necessario
DettagliIl modello Client/Server. La comunicazione
Il modello Client/Server La comunicazione Se sintetizziamo uno scenario completo possiamo identificare diverse interfacce di comun icazione: Interfaccia di comuncazione: insieme delle API necessarie alla
DettagliDomain Name Service. Mapping nomi/indirizzi con Socket API in C
Domain Name Service Mapping nomi/indirizzi con Socket API in C 1 Risoluzione di nomi simbolici TCP/IP ha bisogno di rappresentazioni numeriche per gli indirizzi (es. 193.204.187.189) e per le porte (es.
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Lezione 9 Giovedì 2-11-2017 Comunicazione con pipe Oltre che con la memoria condivisa
DettagliControllo Winsock di Visual Basic
Controllo Winsock di Visual Basic Il controllo Winsock, non visibile all'utente, consente di accedere ai servizi di rete TCP e UDP. Per creare applicazioni client o server non è necessario conoscere in
DettagliSistemi di Elaborazione. Introduzione alla Programmazione distribuita
Sistemi di Elaborazione Introduzione alla Programmazione distribuita Obiettivi Introdurre i concetti di base su programmazione distribuita Modello Client-Server Interfaccia Socket Progettare e realizzare
DettagliIl 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.
DettagliProgettazione di un client TCP. Progettazione di un server TCP. Esempio: daytime TCP. Client TCP daytime
Progettazione di un client TCP Progettazione di un server TCP Passi per la progettazione di un client TCP 1. Creazione di un endpoint Richiesta al sistema operativo 2. Creazione della connessione Implementazione
DettagliLivello di trasporto: meccanismi trasferimento dati affidabile, TCP
Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013
DettagliEsempio 1: stampa locale di file remoto
Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente
DettagliCreare un'elementare backdoor in C in ambiente UNIX
Creare un'elementare backdoor in C in ambiente UNIX DISCLAIMER: Questo tutorial è a solo scopo didattico. L'autore NON si prende alcuna responsabilità circa usi errati o non legali delle informazioni qui
DettagliTelematica di Base. IL Livello di Trasporto TCP
Telematica di Base IL Livello di Trasporto TCP TCP RFCs: 793, 1122, 1323, 2018, 2581 point-to-point: Un sender, un receiver affidabile protocollo di tipo pipeline: Meccanismi per evitare la congestione,
DettagliLivello trasporto. Servizi del livello trasporto
ivello trasporto Servizi Multiplexing e demultiplexing Trasporto senza connessione: UDP Principi di trasferimento affidabile Trasporto orientato alla connessione: TCP Struttura del segmento Trasferimento
DettagliConfigurazione delle interfacce di rete
Configurazione delle interfacce di rete A.A. 2006/2007 Alessandro Botticelli Instradamento dei datagrammi IP Routing : scelta del percorso su cui inviare i dati i router formano struttura interconnessa
DettagliSERVER CLIENT. Struttura di un Applicazione UDP. Socket UDP. Parametri di sendto. Funzioni di Input/Output. Prof. Vincenzo Auletta
I semestre 03/04 Struttura di un Applicazione UDP Socket UDP socket() bind() Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ CLIENT socket() sendto() Dati (richiesta)
DettagliServer Iterativi. Server TCP Ricorsivi. Fork. Server Ricorsivi. un server iterativo gestisce una connessione alla volta. Prof.
Università degli studi di Salerno Laurea in Informatica a.a. 2003/04 TCP Ricorsivi Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 1 Iterativi un server iterativo
DettagliSocket per TCP: Fondamenti
Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette
DettagliUna 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,
DettagliTECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP
DettagliLaboratorio di Reti di Calcolatori
Laboratorio di Reti di Calcolatori Socket UDP. Paolo D Arco Abstract Scopo della lezione è descrivere le funzioni che l interfaccia dei socket offre per far interagire client e server attraverso il protocollo
DettagliComunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione
I semestre 03/04 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 2
DettagliCorso di Sistemi Operativi Esercitazioni
Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Corso di Sistemi Operativi Esercitazioni Lezione IX Esempio di progetto Server HTTP 0.9 Server HTTP 0.9 Specifiche Si chiede di
DettagliSocket I MIDLAB. Sirio Scipioni. M I D L A B
scipioni@dis.uniroma1.it http://www.dis.uniroma1.it/~scipioni MIDLAB http://www.dis.uniroma1.it/~midlab Sommario Strutture dati Funzioni Echo client/server Echo server TCP Echo client TCP Echo server UDP
DettagliT.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
DettagliSviluppo di Applicazioni su Rete. Introduzione all API socket di Berkeley. Interazione tra Processi. Modello Client-Server
a.a. 2003/04 Introduzione all API socket di Berkeley Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica
DettagliArchitettura 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:
DettagliCorso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori a.a. 2009/10 Roberto Canonico (roberto.canonico@unina.it) Antonio Pescapè (pescape@unina.it) Le socket di Berkeley Le socket di Berkeley
DettagliIl 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.
DettagliNetworking. Mauro Migliardi Ph. D.
Software Architectures Networking Mauro Migliardi Ph. D. A word of wisdom The word networking strikes fear in the hearts of many programmers. Fear not! Using the networking capabilities provided in the
DettagliIndirizzamento IP. Politecnico di Milano Facoltà di Ingegneria dell Informazione
Politecnico di Milano Facoltà di Ingegneria dell Informazione Indirizzamento IP -Indirizzamento classful -Subnetting e Supernetting -Indirizzamento classless Reti TCP/IP Reti a pacchetto (datagram) Mediante
DettagliArchitetture di rete. 4. Le applicazioni di rete
Architetture di rete 4. Le applicazioni di rete Introduzione L avvento di tecnologie (hw, sw, protocolli) di rete avanzate ha permesso la nascita di architetture software molto evolute che permettono lo
DettagliCorso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast
Indirizzi LAN e ARP Corso di Reti di Telecomunicazioni Giovanni Schembra 1 Trasmissione trame su canale broadcast I nodi di una LAN si scambiano trame su un canale broadcast: quando un nodo in una LAN
DettagliSockets 1. Concetti basici 2. Domini e tipi di comunicazione 3. Protocolli 4. Socket in sistemi UNIX/Windows
Sistemi Operativi Laurea in Ingegneria Informatica Sapienza Universita di Roma Docente: Francesco Quaglia Sockets 1. Concetti basici 2. Domini e tipi di comunicazione 3. Protocolli 4. Socket in sistemi
Dettagli*HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW
*HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW 7&3H8'3&OLHQW6HUYHUXVDQGRVHOHFW Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,
Dettaglifunzione fork() La funzione fork è usata per duplicare un processo. #include <unistd.h> pid_t fork (void);
La funzione fork è usata per duplicare un processo. #include pid_t fork (void); funzione fork() restituisce -1 in caso di errore. Se tutto va a buon fine restituisce 0 nel processo figlio ed
DettagliIl livello trasporto: Introduzione e protocollo UDP
Corsi di Laurea in Ingegneria Informatica Ingegneria delle Telecomunicazioni Ingegneria dell Automazione Corso di Reti di Calcolatori Simon Pietro Romano (spromano@unina.it) Antonio Pescapè (pescape@unina.it)
DettagliSC per Inter Process Comminication. Comunicazione fra macchine diverse: socket
SC per Inter Process Comminication Comunicazione fra macchine diverse: socket 1 Sockets File speciali utilizzati per connettere due o più processi con un canale di comunicazione i processi possono risiedere
DettagliEsercizio Trasferimento File e Multicast
Esercizio Esercizio Trasferimento File e Esercitazione di Laboratorio 14/11/2007 Esercizio Trasferimento File e Esercizio Esercizio Trasferimento File Sviluppare un applicazione distribuita che offra il
DettagliMariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche
Mariarosaria Napolitano Architettura TCP/IP Corso di: Laboratorio di tecnologie informatiche e telematiche Contesto e Prerequisiti Contesto E' rivolto agli studenti del V anno degli Istituti Tecnici Industriali
Dettagli