Laboratorio di Programmazione in Rete

Похожие документы
Una prima applicazione in C per l utilizzo delle socket

Creare una applicazione Winsock di base

I Socket. Laboratorio Software M. Grotto R. Farina

Cenni di programmazione distribuita in C++ Mauro Piccolo

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Esercitazione [6] Client/Server con Socket

Controllo Winsock di Visual Basic

Introduzione alle applicazioni di rete

Transmission Control Protocol

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

HTTP adaptation layer per generico protocollo di scambio dati

Interazione (TCP) Client-Server con le socket

Introduzione alla programmazione C di socket

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

IPC Inter Process Communication

Socket TCP. seconda parte

Introduzione alla programmazione in C

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Opzioni per le Socket

Telematica II 12. Esercitazione/Laboratorio 4

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Approfondimento di Marco Mulas

Standard di comunicazione

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Reti di Telecomunicazione Lezione 8

Programmazione dei socket con TCP #2

Reti di Calcolatori. Il software

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

appunti delle lezioni Architetture client/server: applicazioni client

Reti di Telecomunicazione Lezione 6

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

L uso di Socket UDP. TCP vs. UDP UDP

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

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

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert)

BACKUP APPLIANCE. User guide Rev 1.0

Esempio 1: stampa locale di file remoto

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

Socket & RMI Ingegneria del Software - San Pietro

Note di rilascio. Aggiornamento disponibile tramite Live Update a partire dal. Il supporto per Windows XP e Office 2003 è terminato

Inizializzazione degli Host. BOOTP e DHCP

Guida alla registrazione on-line di un DataLogger

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Inizializzazione, Assegnamento e Distruzione di Classi

strutturare dati e codice

Socket TCP. prima parte


Creare connessioni cifrate con stunnel

rsystem Maximiliano Marchesi

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Allocazione dinamica della memoria - riepilogo

API e socket per lo sviluppo di applicazioni Web Based

Impostare il ridirezionamento di porta

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Funzioni in C. Violetta Lonati

Gestione dei File in C

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Introduzione al Linguaggio C

Chat. Connettersi a un server di chat. Modificare le impostazioni di chat. Ricevere impostazioni chat. Chat

Record in C: il costruttore struct.

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Reti di Telecomunicazione Lezione 7

Outlook Plugin per VTECRM

I/O su Socket TCP: read()

Esercizio 2. Client e server comunicano attraverso socket TCP

L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio

Firewall e Abilitazioni porte (Port Forwarding)

1. Manuale d uso per l utilizzo della WebMail PEC e del client di posta tradizionale

DNS-Tunneling. Reference to. Ettore di Giacinto Luca Montunato

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Interprocess Communications - II. Franco Maria Nardini

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

1. Panoramica Prodotto Sezione Anteriore Sezione Posteriore... 2

ANTISPAM PLAYNET (nuova Piattaforma) In questa piccola guida vogliamo mostrarvi come creare regole di BlackListe e Whitelist per

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Copyright ZYCOO All rights reserved. V1.0. Manuale Utente by. Indice

Manuale Utente Amministrazione Trasparente GA

Software di gestione della stampante

- DocFinance Manuale utente

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

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

GNred Ver1.5 Manuale utenti - Modulo diashow

Транскрипт:

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 N.B. Il presente materiale didattico è stato prodotto da: dott.ssa V. Carofiglio rielaborato da: dott.ssa F.A. Lisi

Sommario della lezione di oggi Famiglie e tipi di socket Ciclo di vita di una socket per TC Applicazioni Winsock Inizializzazione Sviluppo con DEV-C ++ dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 2

Socket: famiglie Ogni famiglia riunisce i socket che utilizzano gli stessi protocolli (rotocol Family) sottostanti, supporta un sottoinsieme di stili di comunicazione e possiede un proprio formato di indirizzamento (Address Family) Esempi di famiglia sono: Unix Domain sockets: 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 LAN o Internet dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 3

Socket: tipi Il tipo della socket definisce la modalità di trasporto adottata per inviare dati: Streaming Socket (SOCK_STREAM): Tratta i dati come flusso di byte. Supporta un trasferimento orientato alla connessione, affidabile e full-duplex. Datagram Socket (SOCK_DGRAM): Tratta i dati come datagrammi, cioè pacchetti di lunghezza massima prefissata. Supporta un trasferimento privo di connessione, inaffidabile. Nota bene: Una socket TC è data da AF_INET + SOCK_STREAM Una socket UD è data da AF_INET + SOCK_DGRAM dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 4

Socket: identificatori In Internet una socket è univocamente determinata da un indirizzo I, un protocollo di trasporto (TC o UD) e un numero di porta Applicazioni Applicazioni Socket TC Socket UD orte TC 1 2 65535 1 2 65535 orte UD TC UD I Sockets bound to ports Host Descriptor reference dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 5

Socket: una astrazione Strutture dati associate ad una socket TC Applicazione Descrittori Closed 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 indirizzi internet informazioni sullo stato dell handshake (per una socket TC) dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 6

Il ciclo di vita di una socket TC: Notazione Applicazione Eventi all interno dell applicazione che causano il cambiamento di stato di una struttura socket connect() blocca Indirizzi: (client), W.X.Y.Z (server) Closed Connecting W.X.Y.Z Handshake completato Established W.X.Y.Z orte: (client), (server) Eventi come l arrivo di messaggi, ecc.. dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 7

Il ciclo di vita di una socket TC: Stabilire una connessione (lato client) Applicazione (lato client) Closed dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 8

Il ciclo di vita di una socket TC: Stabilire una connessione (lato client) Applicazione (lato client) Closed connect() con I W.X.Y.Z e porta blocca Completa i campi; Invia richiesta di connes. al server dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 9

Il ciclo di vita di una socket TC: Stabilire una connessione (lato client) Applicazione (lato client) Closed connect() con I W.X.Y.Z e porta blocca Completa i campi; Invia richiesta di connes. al server Connecting W.X.Y.Z non in uso da altre socket indirizzo dell interfaccia attraverso cui vengono inviati i pacchetti al server dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 10

Il ciclo di vita di una socket TC: Stabilire una connessione (lato client) Applicazione (lato client) connect() con I W.X.Y.Z e porta blocca Closed Completa i campi; Invia richiesta di connes. al server Connecting W.X.Y.Z Handshake a tre vie completato Established W.X.Y.Z dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 11

Il ciclo il client di vita considera di la una socket TC: Stabilire appena una riceve connessione l ack dal server (lato client) Applicazione (lato client) connessione stabilita non se il server non accetta una connessione invia un messaggio connect() con I W.X.Y.Z e porta blocca Closed Completa i campi; Invia richiesta di connes. al server Connecting W.X.Y.Z Handshake a tre vie completato Established W.X.Y.Z dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 12

Il ciclo di vita di una socket TC: Setup della socket (lato server) Applicazione (lato server) bind() con porta returns Closed Setta indirizzo locale e porta Closed INADDR_ANY dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 13

Il ciclo di vita di una socket TC: Setup della socket (lato server) Applicazione (lato server) Closed bind() con porta returns Setta indirizzo locale e porta Closed INADDR_ANY nel caso in cui il server ha più di un I, consente alla socket di ricevere connessioni indirizzate da tutti i suoi I dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 14

Il ciclo di vita di una socket TC: Setup della socket (lato server) Applicazione (lato server) bind() con porta returns listen() Return Closed Setta indirizzo locale e porta Closed INADDR_ANY Setta all ascolto Listening INADDR_ANY dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 15

Il ciclo di vita di una socket TC: Setup della socket (lato server) Applicazione (lato server) ualunque richiesta di connessione che avviene prima della listen() verrà rigettata bind() con porta returns listen() Return Closed Setta indirizzo locale e porta Closed INADDR_ANY Setta all ascolto Listening INADDR_ANY dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 16

Il ciclo di vita di una socket TC: Accettazione della connessione (lato server) Applicazione (lato server) accept() Blocca sino alla connessione con un client Listening nuova conness. dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 17

Il ciclo di vita di una socket TC: Gestione della connessione (lato server) Richiesta di connessione da / Listening nuova connessi. rocesso trasparente dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 18

Il ciclo di vita di una socket TC: Gestione della connessione (lato server) Richiesta di connessione da / Listening nuova connessi. Creare una nuova socket per la connessione, settare gli indirizzi e continuare l handshake Connecting W.X.Y.Z I di destinazione I e porta del mittente rocesso trasparente dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 19

Il ciclo di vita di una socket TC: Gestione della connessione (lato server) Richiesta di connessione da / Listening nuova connessi. Creare una nuova socket per la connessione, settare gli indirizzi e continuare l handshake Connecting il numero di porta locale è lo stesso per le due socket La socket originale non cambia stato un ack viene inviato dal server al client W.X.Y.Z rocesso trasparente dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 20

Il ciclo di vita di una socket TC: Gestione della connessione (lato server) Richiesta di connessione da / Listening nuova connessi. Creare una nuova socket per la connessione, settare gli indirizzi e continuare l handshake Connecting Handshake completato Established W.X.Y.Z W.X.Y.Z rocesso trasparente dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 21

Il ciclo di vita di una socket TC: Gestione della connessione (lato server) Richiesta di connessione da / Listening nuova connessi. rocesso trasparente Creare una nuova socket per la connessione, settare gli indirizzi e continuare l handshake Connecting W.X.Y.Z il server non considera la connessione stabilita finchè non viene inviato il terzo messaggio Handshake completato Established W.X.Y.Z dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 22

Il ciclo di vita di una socket TC: Gestione della connessione (lato server) Applicazione (lato server) Listening nuova conness. accept() Blocca sino alla connessione con un client Evento descritto in Richiesta di connessione in entrata Established Ritorna il descrittore per questa socket (socket di connessione) dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio Remote di Irogrammazione in Rete (1/5) 23 W.X.Y.Z Rimuove la socket dalla lista di nuove conness. Listening Nuova connessi.

Il ciclo di vita di una socket TC: Chiusura della connessione Applicazione Established W.X.Y.Z close() Returns immediately Terminazione senza perdita di dati in transito dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 24

Il ciclo di vita di una socket TC: Chiusura della connessione Applicazione Established W.X.Y.Z close() Returns immediately Ha inizio un handshake di chiusura, Il descrittore viene deallocato 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 dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 25

Il ciclo di vita di una socket TC: Chiusura della connessione Applicazione Established W.X.Y.Z close() Returns immediately Ha inizio un handshake di chiusura, Il descrittore viene deallocato 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 dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 26

Il ciclo di vita di una socket TC: Chiusura della connessione Applicazione close() Returns immediately Established W.X.Y.Z Ha inizio un handshake di chiusura, Il descrittore viene deallocato Closed W.X.Y.Z Hs msg Half-Closed Terminazione senza perdita di dati in transito W.X.Y.Z dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 27

Il ciclo di vita di una socket TC: Chiusura della connessione Applicazione close() Returns immediately Established W.X.Y.Z Ha inizio un handshake di chiusura, Il descrittore viene deallocato Closed W.X.Y.Z Hs msg Half-Closed Terminazione senza perdita di dati in transito W.X.Y.Z Hs ack Time-wait W.X.Y.Z dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 28

rogrammazione client/server basata sulle socket Lo sviluppatore ha il controllo degli aspetti della socket che stanno dal lato del livello applicativo, ma ha poco controllo di quelli che stanno dal lato del livello di trasporto (alcuni parametri) Livello di Applicazione Livello di Trasporto 1 2 65535 1 2 65535 TC UD I Host dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 29

... in C per Windows Le applicazioni client-server basate su socket in C per Windows: sono brevemente indicate con il nome di applicazioni WinSock (Windows Socket Application) utilizzano la AI WinSock (file winsock.h) #include<stdio.h> #include<winsock.h> void main() { return; } dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 30

Applicazioni WinSock: inizializzazione Tutte le applicazioni WinSock devono essere inizializzate per essere sicuri che le socket Windows siano supportate dal sistema er inizializzare un applicazione Winsock: Creare una variabile di tipo WSADATA: WSADATA wsadata; La struttura WSADATA contiene informazioni sull implementazione delle socket Windows dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 31

Applicazioni WinSock: inizializzazione Tutte le applicazioni WinSock devono essere inizializzate per essere sicuri che le socket Windows siano supportate dal sistema er inizializzare un applicazione Winsock: Creare una variabile di tipo WSADATA: WSADATA wsadata; La struttura WSADATA contiene informazioni sull implementazione delle socket Windows wversion: versione per la specifica di socket whighversion: versione massima per a specifica di socket windows supportabile typedef struct WSAData { WORD wversion; WORD whighversion; utilizzata char szdescription[wsadescrition_len+1]; char szsystemstatus[wsasys_status_len+1]; unsigned short imaxsockets; unsigned short imaxudpdg; char FAR lpvendorinfo; } WSADATA dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 32

Applicazioni WinSock: inizializzazione Tutte le applicazioni WinSock devono essere inizializzate per essere sicuri che le socket Windows siano supportate dal sistema er inizializzare un applicazione Winsock: Creare una variabile di tipo WSADATA: WSADATA wsadata; Specificare la versione di socket Windows richiesta e recuperare i dettagli della implementazione di tale versione dal sistema operativo Int iresult = WSAStartup(MAKEWORD(2,2), &wsadata); If (iresult!= NO_ERROR) printf( error at WSASturtup\n ); dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 33

Applicazioni WinSock: inizializzazione Tutte le applicazioni WinSock devono essere inizializzate per essere sicuri che le socket Windows siano supportate dal sistema er inizializzare un applicazione Winsock: Creare una variabile di tipo WSADATA: WSADATA wsadata; Specificare la versione di socket Windows richiesta e recuperare i dettagli della implementazione di tale versione dal sistema operativo Int iresult = WSAStartup(MAKEWORD(2,2), &wsadata); If (iresult!= NO_ERROR) printf( error at WSASturtup\n ); wversionrequested: versione di socket windows che il chiamante può usare. int WSAStartup( WORD wversionrequested, LWSADATA lpwsadata ); wversion: puntatore alla struttura WSDATA che contiene informazioni per l implementazione della socket Restituisce 0 in dott.ssa caso di V. successo. Carofiglio Il & codice dott.ssadi F.A. errore Lisi altrimenti Laboratorio di rogrammazione in Rete (1/5) 34

Applicazioni WinSock: inizializzazione Tutte le applicazioni WinSock devono essere inizializzate per essere sicuri che le socket Windows siano supportate dal sistema er inizializzare un applicazione Winsock: Creare una variabile di tipo WSADATA: WSADATA wsadata; Specificare la versione di socket Windows richiesta e recuperare i dettagli della implementazione di tale versione dal sistema operativo Int iresult = WSAStartup(MAKEWORD(2,2), &wsadata); If (iresult!= NO_ERROR) printf( error at WSASturtup\n ); specifica il numero di versione di WinSock sul sistema e lo costruisce correttamente dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 35

Applicazioni WinSock: inizializzazione WORD wversionrequested; WSADATA wsadata; int err; wversionrequested = MAKEWORD( 2, 2 ); Un esempio! err = WSAStartup( wversionrequested, &wsadata ); if ( err!= 0 ) { / Tell the user that we could not find a usable / / WinSock DLL. / return; } / Confirm that the WinSock DLL supports 2.2./ / Note that if the DLL supports versions greater / / than 2.2 in addition to 2.2, it will still return / / 2.2 in wversion since that is the version we / / requested. / if ( LOBYTE( wsadata.wversion )!= 2 HIBYTE( wsadata.wversion )!= 2 ) { / Tell the user that we could not find a usable / / WinSock DLL. / WSACleanup( ); return; } / The WinSock DLL is acceptable. roceed. / dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 36

Applicazioni WinSock: sviluppo con DEV-C++ Selezionare la voce File New rojects Selezionare Empty roject Salvare il progetto in dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 37

Applicazioni WinSock: sviluppo con DEV-C++ (cont) Clicca su parametri Aggiungi libreria o oggetto Naviga nella directory Dev-C++\Lib e aggiungi il file libwsock32 (oppure libws2_32 per Winsock2) NB: I nomi delle librerie possono cambiare a seconda del compilatore Es: Visual C++ wsock32.lib (ws2_32.lib) dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 38

Commenti conclusivi Le esercitazioni per questo corso saranno condotte con: Windows X Dev C++ (v. V) Tuttavia mostreremo le differenze nell uso delle AI socket per UNIX Il materiale didattico e alcuni degli esempi mostrati potranno essere scaricati dalla pagina del corso: N.B. Gli esempi scaricabili sono testati e possono essere compilati ed eseguiti in DEV-C++ senza alcuna modifica. Tuttavia in base alla posizione dei file header (.h) e delle dipendenze varie (es. librerie) sul vostro sistema, talvolta potrebbero essere necessarie piccole modifiche. Nella prossima lezione affronteremo i dettagli implementativi della interazione client-server in C su TC per Windows dott.ssa V. Carofiglio & dott.ssa F.A. Lisi Laboratorio di rogrammazione in Rete (1/5) 39