J'ai trouvé pas mal d'articles concernant le multi-threading, notamment ceux çi
http://www.developpez.net/forums/d20...artie-serveur/
http://www.developpez.net/forums/d78...t-serveur-jeu/
http://www.developpez.net/forums/d58...-multi-thread/
Mon objectif est de réaliser un serveur ( en .NET ) qui pourrait tenir facilement les 10.000joueurs pour un jeux en tour par tour en 2D iso.
Malheureusement je peine à comprendre la structure que doit adopter mon application car beaucoup d'avis divergent, et je ne m'y retrouve plus vraiment
Pour l'instant j'ai réussi à en retirer ceci :
*Utiliser des Sockets non bloquants
*Préférable d'utiliser des pools de threads, afin d'éviter d'instancier des threads sans arrêt.
*1 thread = 1Client c'est le mal
*L'idéal est de grouper x clients dans un thread ( 100Clients par exemple )
J'ai entendu parler de l'I/O Completion port, mais j'ai pas trop compris la mise en place.
Je n'arrive pas à trouver une structure adapté pour réaliser le multi-threading ( je reste centré sur ma vision 1thread=1client )
Quelque chose comme ceci conviendrai t'il ?
Listener – Un Thread en attente de connection, accepte les connexions, et les envoit à un des I/O Workers
I/O-Worker(s) – Un ou plusieurs threads qui recoivent / envoient les informations au client.(répartir ~100clients/thread)
Data Processing Worker(s) – Un ou plusieurs threads qui recoivent les infos de IO Workers afin de les traiter et renvoyer de nouvelles infos.
(Thread IA,Thread BDD,thread traitement...)
Partager