Strumenti Utente

Strumenti Sito


lcs:lcs07:esercitazioni:esercitazione8

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
lcs:lcs07:esercitazioni:esercitazione8 [26/04/2007 alle 09:03 (18 anni fa)] Susanna Pelagattilcs:lcs07:esercitazioni:esercitazione8 [04/05/2007 alle 09:25 (18 anni fa)] (versione attuale) – modifica ordine esercizi 4 e 5, stile peppe
Linea 1: Linea 1:
 ====== Esercitazione 8 ====== ====== Esercitazione 8 ======
  
-====== Esercizio 0: Un server ed un client ======+===== 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. 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. Sia il server che il client stampano il messaggio ricevuto sullo standard output prima di terminare.
  
-====== Esercizio 1: Un server e molti client (multithreaded) ======+===== Esercizio 1: Un server e molti client (multithreaded) =====
  
 Estendere l'esercizio precedente in modo che il server accetti la connessione da piu' processi client. Ogni client all'avvio decide quanti messeggi inviare (casualmente fra 1 e N_MSG_MAX). Tutti i messaggi inviati contengono il PID del processo client che li invia. Il srever stampa tutti i messaggi ricevuti sullo standard output.  Estendere l'esercizio precedente in modo che il server accetti la connessione da piu' processi client. Ogni client all'avvio decide quanti messeggi inviare (casualmente fra 1 e N_MSG_MAX). Tutti i messaggi inviati contengono il PID del processo client che li invia. Il srever stampa tutti i messaggi ricevuti sullo standard output. 
Linea 13: Linea 13:
 **Elaborazione:** Invece di attivate un thread worker per ogni client attivare un pool di worker all'inizio e schedulare le richieste arrivate sul pool in modo da bilanciare il carico dei vari worker. **Elaborazione:** Invece di attivate un thread worker per ogni client attivare un pool di worker all'inizio e schedulare le richieste arrivate sul pool in modo da bilanciare il carico dei vari worker.
  
-====== Esercizio 2: Un server e molti client (single thread) ======+===== Esercizio 2: Un server e molti client (single thread) =====
 Realizzare un server ed un client analoghi a quelli dell'esercizio 2 senza usare i therad. Utilizzare la //select// per risolvere il non determinismo fra l'accettazione di nuove connessioni e la lettura dei messaggi dai client gia' connessi. Realizzare un server ed un client analoghi a quelli dell'esercizio 2 senza usare i therad. Utilizzare la //select// per risolvere il non determinismo fra l'accettazione di nuove connessioni e la lettura dei messaggi dai client gia' connessi.
  
-====== Esercizio 3: Big and little endians ======+===== 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. 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: AF_INET server =====
  
-====== Esercizio 4: Get HTTP ======+Modificare gli esercizi 1 e 2 affiche' utilizzino indirizzi AF_INET. 
 + 
 +===== Esercizio 5: Get HTTP =====
 Scrivere un programma C che scarica la home page dal server ''131.114.11.34'' inviando una richiesta Scrivere un programma C che scarica la home page dal server ''131.114.11.34'' inviando una richiesta
 <code> <code>
Linea 28: Linea 31:
 **Elaborazione:** Utilizzare ''getaddrinfo'' per ottenere l'indirizzo per il server web di google in italia ("www.google.it") **Elaborazione:** Utilizzare ''getaddrinfo'' per ottenere l'indirizzo per il server web di google in italia ("www.google.it")
  
-====== Esercizio 5: AF_INET server ====== 
  
-Modificare gli esercizi 1 e 2 affiche' utilizzino indirizzi AF_INET. 
lcs/lcs07/esercitazioni/esercitazione8.1177578217.txt.gz · Ultima modifica: 27/06/2007 alle 12:16 (18 anni fa) (modifica esterna)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki