Le problème, c'est que le thread #1 ne sait pas si le client vient du thread #2 ou d'un autre processus tant que recv() n'a pas retourné.
Donc, le thread #1 doit obligatoirement faire le recv().
Résultat, si un client extérieur se connecte puis n'envoit rien du tout, le serveur reste bloqué sur le recv() en attendant que le client envoie.
Résultat, si je fais un client qui se connecte puis plus rien, j'ai lancé une attaque Denial of Service sur le serveur de Gruik à peu de frais...
Partager