Je suis actuellement en train de retravailler notre code propriétaire d'enrobage de douilles pour utiliser boost asio afin qu'il puisse effectuer une partie de la levée de charges lourdes pour nous. La partie la plus complexe de notre code existant est peut-être le code de gestion de multidiffusion. Le code permet à nos serveurs de niveau intermédiaire (dont il y en a plusieurs dans un système) d'envoyer des multidiffusions à des boîtes client, qui les utilisent pour présenter des mises à jour aux utilisateurs du système.Existe-t-il une "bonne" façon de traiter les multicasts de réassemblage à partir de plusieurs sources?
La raison pour laquelle le code est complexe et sujet aux erreurs est qu'il utilise un certain nombre de tampons bruts pour réassembler les flux de multidiffusion selon leur provenance. Il semble que même avec Boost.Asio, je vais devoir faire face à ce même problème, alors avant que je ne sois coincé, j'ai pensé que ça valait la peine de demander comment d'autres personnes ont fait face à cette situation.
Cela semble être un cas d'utilisation très courant. Est-ce qu'il y a quelque chose qui peut m'aider à faire ce travail sans le code que j'ai maintenant? Ou existe-t-il un modèle C++ établi (Boost ou autre) capable de faire ce genre de travail? De toute évidence, je pourrais me faciliter la tâche et utiliser des conteneurs STL pour mettre en mémoire tampon les paquets au lieu des tableaux bruts, mais ce code doit être très performant. Sur les grandes installations, il y a un grand nombre de paquets qui volent autour et il doit répondre le plus près possible du temps réel.
Merci d'avance pour toute réflexion à ce sujet.
Jamie