Pur avendolo spiegato, considera che il problema lo hai tutto chiaro tu e io non posso capirlo in maniera completa ...

Se ti serve il multithreading e' perche' vuoi eseguire (diciamo) del codice in maniera concorrente ... Se il compito di ogni thread e' quello di servire un client (ma non mi pare il tuo caso) allora passi ad ogni thread creato le informazioni (con il puntatore a struttura) che gli servono ... Se il compito e' quello di elaborare un particolare messaggio per ogni client, allora passi solamente queste informazioni ...