Questa è una vecchia versione del documento!
Indice
Esercitazione 8
Esercizio 0: Un server ed un client
Scrivere due programmi C che realizzano un server ed un client che intergiscono con socket AF_UNIX come nell'esempio visto a lezione, Il server, creata la connessione, si mette in attesa di un messaggio da parte del client che contiene “Hallo” ed il PID del client. Alla ricezione invia un messaggio di “Bye” con il proprio PID e chiude la comunicazione. Sia il server che il client stampano il messaggio ricevuto sullo standard output prima di terminare.
Esercizio 1: Un server e molti client
Estendere l'esercizio precedente in modo che il server accetti la connessione da piu' processi client. Ogni client puo' mandare piu' di un messaggio. Tutti i messaggi contengono il PID del processo client che li invia e sono stampati su standard output dal server alla ricezione.
Esercizio 2: Socket AF_INET
Modificare la soluzione dell'esercizio 1 in modo da utilizzare indirizzi AF_INET. Provare i client ed i server sviluppati su macchine diverse.
Esercizio 3: big and little endians
Scrivere un programma che converte il numero 0x3A4C rappresentato su due byte in network byte order e stampa il valore dei due byte da quello di indirizzo minore. Riconvertire il risultato in host byte order e stampare ancora i due byte a partire da quello di indirizzo minore.
Esercizio 4: Get HTTP
Scrivere un programma C che scarica la home page dal server 131.114.11.34
inviando una richiesta
#define REQUEST "GET / HTTP/1.0\r\n\r\n"
sulla porta 80.
Elaborazione: Utilizzare getaddrinfo
per ottenere l'indirizzo per il server web di google in italia (“www.google.it”)