Ciao Sergio,
credo di aver risolto e il server funziona in due modi:
1) facendo prima la send della linea di stato e degli header e poi la send del body (buffer contenente il file);
2) facendo un'unica send della linea di stato, degli header e del buffer.
E' normale che funzioni anche il primo modo? Se così fosse significa che il body può essere mandato a parte.
Già che ci sono volevo chiederti anche un'altra cosa. Il server che devo realizzare nella versione finale dovrà essere concorrente tramite i thread e a tale scopo devo usare la libreria pthread. Se necessario dovrò utilizzare anche i meccanismi di protezione messi a disposizione da tale libreria (semafori, variabili condition). Ecco, mi chiedevo... quando in particolare devo utilizzare tali meccanismi di protezione? Ogni volta che i thread accedono a strutture dati condivise (variabili globali) e in generale per la lettura dei file richiesti dai browser? Potrei mettere la muta esclusione sul codice che legge un file per ricopiarlo nel buffer. Però in questo modo i thread dovrebbero attendere anche quando leggono file diversi, giusto? Attendo con ansia i tuoi preziosi consigli
Grazie ancora,

Federico