Bonjour,

Je me fais un mini-projet réseau histoire de me rafraîchir les idées en Qt (je l'ai déjà utilisé pour faire de l'IHM ou des bases de données, mais pas pour du réseau). J'implémente la partie serveur d'un protocole de communication dont j'ai établi les spécifications à part (aucune interface graphique). Une question de fond se pose à moi : est-ce qu'il vaut mieux que je le code en utilisant les sockets de manière asynchrone ou synchrone ?

Bien sûr, Qt encourage à faire de l'asynchrone et à passer par les signaux/slots pour tout gérer. Néanmoins, si je dois réagir aux messages en fonction de ce que je viens d'exécuter, si je dois vérifier que ce message est bien légal en fonction de ce qui a précédé, je vais avoir tendance à préférer écrire mon programme de manière plus séquentielle, avec des waitForXXX partout. Sans doute que je suis influencé par mes habitudes antérieures, et que ça me paraît plus naturel de commencer par créer un thread par client et de gérer le déroulé des communications dans le "run()"...

Peut-être qu'il y a une philosophie propre au "réseau asynchrone", qui m'échappe pour l'instant, et me rendrait plus facile le développement d'une machine à états avec les outils qui semblent avoir la faveur de Qt ?

Je vous remercie par avance pour vos remarques, réflexions, suggestions.