-
thread utilisation ?
Bonjour, j'ai un serveur qui écoute sur port donné, lorsqu'un client se connecte un thread est créé pour gérer les entrées et sorties du flux de ce client. Le message que le client envoie m'informe sur les propriétés d'une seul classe parmi x classes possible, exemple de message <xml ... <class name="Achat"><void id="article1"><int>2</int>...> ou bien un xml sur la classe Vente, Suppression, ...
Ma question, est ce le thread de traiter ce message ou dois je faire un nouveau thread pour exploiter ce message ?:(
Avez vous de la doc sur ce genre de traitement ?
-
ben tout dépend du traitement. Peux tu mettre en attente le client pendant le traitement? Si oui -> utilise le même thread. Si non, il va te falloir une srote de pile de tache en attente et un ou plusieurs threads qui les consume
-
ok je mets le client en attente, cela ne pose aucun problème d'utiliser le seul thread qui écoute le client pour effectuer cette tache ? (tache de chat, enregistrement dans bbd, ...)
-
Les soucis que tu avoir en ayant un thread par client c'est que si tes traitements sont trop long la socket peut partir en timeout. Ou si tu gères mal tes erreurs tu peux planter la communication avec le client.
-
Et si je mets le client en attente, et que je crée un thread pour effectuer sa tache, c'est mieux ça ? le système pourra gérer tous ces threads ?
Comment les programmeurs de jeux en ligne font-ils avec ses miliers de connectés 8O ?
-
si vous faites ça dans un thread à part, justement, vous ne mettez pas le client en attente. Vous lui répondez en gros "ok, bien recu, je traiterais plus tard".
Peu de jeu en ligne on des "milliers" de connectés sur un même server ;) il y a toujours la mise en place de différents trucs pour répartir la charge sur plusieurs (beaucoup) de serveurs.