mi ricordo programmi simili fatti per info2, su linux.
dopo aver accettato una connessione basta che fai una fork(), dalla parte del figlio gestisci il client e il protocollo HTTP e finita la connessione lo termini;
dalla parte del padre invece ritorni ad attendere una nuova richiesta di connessione, e così via.


codice:
conn = await_contact((appnum) atoi(argv[1]));
		if (conn < 0)
			exit(1);
pid = fork()
if (pid==-1)
{
    //PROCESSO FIGLIO
}
else
{
    //PROCESSO PADRE
}
ovviamente dovresti conoscere come funziona la fork!

ciao!