Arbeite mit _beginthreadex()
So ungefähr sieht des aus:

Code:
int irc_start()  {

   reserviere speicher für buffer 
   empfange bytes vom server und schreibe in buffer
   starte "derThread" mit beginthreadex() und übergebe buffer

}

int derThread(char *wert) {
 kopiere Wert von der Variablen "wert"
 gebe buffer("wert") mit free() frei
}
Grob gesehen sieht das ganze jetzt so aus.
Kann den Code leider nicht komplett posten.