bonjour,
j'ai codé un client/serveur udp qui attend un acquittement pour chaque message qu'il envoit : si l'acquittement n'a pas été reçu pour un message donné durant une certaine limite de temps, je renvoie le message (cela un certain nombre de fois jusqu'à abandon).
je cherche la meilleure manière de contrôler le renvoi des messages non acquittés : pour l'instant je stocke les messages dans une liste et j'utilise pthread_cond_timedwait pour gérer le timer de renvoi (on renvoit si le timeout a eu lieu avant la réception de l'acquittement), mais ça m'oblige à lancer un thread par message, et donc d'avoir un timer par message.
pour l'instant ça marche bien, mais je voulais savoir si vous connaissiez une méthode plus simple et moins coûteuse en ressources pour gérer les renvois de message en udp
j'avais pensé à utilser select pour gérer un timeout sur la socket mais comme je ne souhaite pas bloquer la socket pour recevoir les messages qui me sont destinés, j'ai abandonné cette idée.
merci pour vos suggestions.
Partager