Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio13:esercitazioni:esercitazione9

Differenze

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

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
informatica:sol:laboratorio13:esercitazioni:esercitazione9 [22/04/2013 alle 09:39 (12 anni fa)] – creata Susanna Pelagattiinformatica:sol:laboratorio13:esercitazioni:esercitazione9 [08/05/2013 alle 07:02 (12 anni fa)] (versione attuale) – [Esercizio 5: Un server e molti client (multithreaded con socket)] Susanna Pelagatti
Linea 19: Linea 19:
  
 ==== Esercizio 3: Un server ed un client ==== ==== Esercizio 3: Un server ed un client ====
-Realizzare un processo server ed un processo client. I due processi intergiscono utilizzando due pipe con nome: //clientserver// e //clientp//. Il server crea la pipe clientserver (se non esiste), la apre e si mette in attesa di messaggi da parte del client.  Ogni messaggio è costituito da un double. Per ogni messaggio ricevuto ''x'', il server calcola ''x*x'' e invia il risultato su //clientp//. La sequenza di messaggi termina quando il figlio chiude la pipe //clientserver//. Le pipe devono essere rimosse dal file system alla terminazione dei due processi.+Realizzare un processo server ed un processo client. I due processi intergiscono utilizzando due pipe con nome: //clientserver// e //clientp//. Il server crea la pipe clientserver (se non esiste), la apre e si mette in attesa di messaggi da parte del client.  Ogni messaggio è costituito da un double. Per ogni messaggio ricevuto ''x'', il server calcola ''x*x'' e invia il risultato su //clientp//. La sequenza di messaggi termina quando il client chiude la pipe //clientserver//. Le pipe devono essere rimosse dal file system alla terminazione dei due processi.
  
 ==== Esercizio 4: Un server e molti client ==== ==== Esercizio 4: Un server e molti client ====
Linea 30: Linea 30:
 ==== Esercizio 5: Un server e molti client (multithreaded con socket) ==== ==== Esercizio 5: Un server e molti client (multithreaded con socket) ====
  
-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. +Creare un server che utilizzi le socket AF_UNIX e piu' thread concorrenti per gestire un numero di 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. 
  
 Il server e' realizzato usando piu' thread. Un thread //dispatcher// che accetta le connessioni dai vari client e un thread //worker// per ogni client. Il thread //worker// viene attivato appena la connessione si stabilisce e si occupa di leggere i messaggi del client e stamparli sullo stdout. Quando il client termina l'invio (EOF) il thread //worker// corrispondente termina e libera la memoria occupata. Il server e' realizzato usando piu' thread. Un thread //dispatcher// che accetta le connessioni dai vari client e un thread //worker// per ogni client. Il thread //worker// viene attivato appena la connessione si stabilisce e si occupa di leggere i messaggi del client e stamparli sullo stdout. Quando il client termina l'invio (EOF) il thread //worker// corrispondente termina e libera la memoria occupata.
Linea 44: Linea 44:
  
 ==== Esercizio 8: Get HTTP ==== ==== Esercizio 8: 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 ''173.194.35.31'' inviando una richiesta
 <code> <code>
 #define REQUEST "GET / HTTP/1.0\r\n\r\n" #define REQUEST "GET / HTTP/1.0\r\n\r\n"
informatica/sol/laboratorio13/esercitazioni/esercitazione9.1366623551.txt.gz · Ultima modifica: 22/04/2013 alle 09:39 (12 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki