Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio15:esercitazionia:esercitazione9

Esercitazione 9

Socket AF_UNIX, comunicazione client-server. Server multithreaded e gestione di più connessioni utilizzando la SC select. Per gli esercizi proposti si richiede di realizzare un Makefile.

Esercizio 1

Realizzare in C un programma client ed un programma server. I due processi intergiscono utilizzando socket AF_UNIX. Il client apre una connessione verso il server ed invia richieste (sotto forma di stringhe) corrispondenti ad operazioni aritmetiche (es. 2+1, 3/4 + 2/7, sqrt(5) + 3.14, …). Il server accetta una stringa alla volta e per eseguire l'operazione lancia un processo che esegue la calcolatrice “bc”. Il messaggio di risposta del server è una stringa contenente il risultato calcolato. La sequenza di operazioni termina quando il client riceve la stringa “quit” e chiude la connessione con il server.

Esercizio 2

Realizzare un programma C che implementa server che rimane sempre attivo in attesa di richieste da parte di uno o piu' processi client. Ogni client richiede al server la trasformazione di tutti i caratteri minuscoli di una stringa in caratteri maiuscoli (es. ciao –> CIAO). Per ogni nuova connessione il server lancia un thread POSIX che gestisce tutte le richieste del client e quindi termina la sua esecuzione quando il client chiude la connessione.
Per testare il programma implementare uno script bash che lancia un certo numero di client ognuno che invia una o piu' richieste al server multithreaded.

Possibile estensione: invece di attivare ogni volta un nuovo thread, gestire un pool di N threads ed effettuare lo scheduling delle richieste dei client sul pool di thread.

Esercizio 3

Realizzare un server analogo a quello dell'Esercizio 2, senza pero' usare i therad, ma utilizzando la chiamata di sistema select per risolvere il non determinismo fra l'accettazione di nuove connessioni da parte dei client e la lettura dei messaggi dai client gia' connessi.

informatica/sol/laboratorio15/esercitazionia/esercitazione9.txt · Ultima modifica: 11/05/2015 alle 08:42 (9 anni fa) da Massimo Torquati