Merci, ca me rassure ! Je n'ai pas pensé du tout qu'il y aurait un timeout si on n'appelle pas "accept", mais c'est logique. Du coup, la première solution n'est pas si sale, finalement.
Et puis allez, zou, une deuxième question pour la route... Je ne veux pas que le serveur reste bloqué indéfiniment dans le "listen", car il doit effectuer d'autres taches régulièrement. Or, la fonction "listen" est bloquante et n'accepte pas de paramètre de timeout. Par conséquent, je l'ai remplacée par un "select" avec un argument timeout non nul. En sortie, j'enchaîne directement avec la fonction "accept" s'il y a une demande de connexion.
Est-ce correct, ou faut-il impérativement passer par la fonction "listen" ? Je n'ai pas l'impression que ce soit indispensable, car "select" semble faire exactement la même chose que "listen", à savoir attendre qu'un un descripteur de fichier soit prêt pour une opération de lecture/écriture. C'est juste que... peut-être que "listen" opère des choses en plus vis-à-vis des sockets ?