C´est automatique :
regarde mon programme " serveur" sur mon site :
Je cree uen socket qui s´appelle sock :
cette socket est la socket d´écoute.
Je cree une autre socket que j´appelle " val"
et je dis :
val = accept(sock, ( SOCKADDR *)&, &);
val sera la nouvelle socket du client.
Le principe, c´est de faire un thread qui écoute en permanence, et donc qui reste bloqué sur le " accept"
quand le accept te rend la main, il te renvoie une nouvelle socket, ça veut dire que tout seul, il attend un client, si un client arrive, il lui alloue une socket et te renvoie son identifiant " val" dans le cas de mon prog.
En mode TCP, tout cela est automatique 
Si tu veux en accepeter plusieurs, tu fous le accept dans un while, et, toujours dans le while, derriere le accept, tu controles le code de retour, si ce n´est pas un type INVALID_SOCKET, alors tu crees une instance pour le client, en marquant dans ses données propres la valeur de " val", qui sera sa socketr pour communiquer.