Je dois réaliser un server multithread/fork. Ce server devra gérer 2 types de traitement : - connexion tcp => une requête de protocole X => une réponse => fermeture (nombre de connexion trrès très importante) - connexion tcp => une requête de protocole Y => une réponse => une requête de protocole Y => une réponse => ... => ... => fermeture
J'ai du mal à savoir comment organiser mes threads, notamment pour le 2eme cas. J'utilise select. Est-ce que je déploie un thread pour chaque tour de select : - nouveau thread pour la connexion, puis meurt - select, nouveau thread pour la lecture de requête, puis meurt - select, nouveau thread pour l'écriture, puir meurt ...
Ou alors, donné + de taches à un thread ? Ou bien avoir un pool de thread uniquement pour la lecture, un autre pool pour l'écriture ?
Bref, savoir codé, c'est bien, savoir concevoir, c'est autre chose
Marsh Posté le 17-08-2010 à 09:33:47
Bonjour,
Je dois réaliser un server multithread/fork.
Ce server devra gérer 2 types de traitement :
- connexion tcp => une requête de protocole X => une réponse => fermeture (nombre de connexion trrès très importante)
- connexion tcp => une requête de protocole Y => une réponse => une requête de protocole Y => une réponse => ... => ... => fermeture
J'ai du mal à savoir comment organiser mes threads, notamment pour le 2eme cas.
J'utilise select.
Est-ce que je déploie un thread pour chaque tour de select :
- nouveau thread pour la connexion, puis meurt
- select, nouveau thread pour la lecture de requête, puis meurt
- select, nouveau thread pour l'écriture, puir meurt
...
Ou alors, donné + de taches à un thread ?
Ou bien avoir un pool de thread uniquement pour la lecture, un autre pool pour l'écriture ?
Bref, savoir codé, c'est bien, savoir concevoir, c'est autre chose
Merci pour vos conseils !