2010-06-11 2 views

Répondre

3

Cela dépend de ce que vous attendez, mais oui vous pouvez. Si vous lisez des paquets UDP qui sont chacun un message complet, cela peut fonctionner correctement. Si vous lisez des flux de données à partir de TCP, cela ne fonctionnera probablement pas bien.

Vous pouvez avoir plusieurs threads acceptant les connexions entrantes sur une socket et cela peut fonctionner plutôt bien car chaque thread obtient une connexion.

1

Vous rencontrerez des problèmes de simultanéité en essayant d'envoyer() ou recv() (SOCK_STREAM) à partir de plusieurs threads. Vous devez utiliser une section critique ou d'autres moyens de créer un accès série à send() et recv().

Une chose standard à faire avec les threads est d'avoir le maître listen() & accept(), puis passer le socket à un thread client qui envoie/reçoit/traite à partir de ce socket. Le thread client est responsable de l'appel de close() ou shutdown().