Dans le cadre de notre projet de fin de semestre, nous sommes tenus de mettre en œuvre un système de chat distribué. Le système doit être évolutif et robuste. Garder ces critères à l'esprit, je suis confus quant à la façon dont nous envoyons un objet vectoriel sur le socket.Sérialiser le vecteur en C++ pour envoyer via UDP Socket?
Étant donné que le vecteur est alloué dynamiquement, envoyer son objet en tant que tel ne fonctionnerait pas car la mémoire vers laquelle il pointe n'est pas copiée. Afin d'accomplir cette sérialisation serait la meilleure option. Mais, comme requis par notre projet, nous ne sommes pas supposés utiliser des bibliothèques tierces telles que Boost et Google Protocol Buffers.
Par conséquent pour sérialiser l'objet vectoriel et l'envoyer sur le réseau, je n'arrive pas à trouver un guide de démarrage expliquant comment procéder. Aussi existe-t-il d'autres alternatives que nous pouvons utiliser pour cela?
Le vecteur contient des chaînes (adresse IP: port) de chaque membre du groupe de discussion.
Toute aide serait géniale. Je vous remercie.
REMARQUE: Nous sommes tenus de faire fonctionner le client de discussion sur un cluster et je crois que pour rendre le système robuste et évolutif, nous devons également prendre en compte l'endianess.
Rien de mal à stocker des données dans un vecteur, la copie du contenu devrait être rapide que le contenu doit être aligné dans la mémoire – EdChum
Quel type contient le vecteur? Si c'est un type POD, et vous pouvez garantir que les machines des deux côtés utilisent la même endianness, l'emballage et l'alignement, alors vous pouvez vous contenter d'envoyer le contenu binaire brut. Si non, alors vous aurez besoin de quelque chose de plus sophistiqué. –
Le vecteur contient des chaînes (adresse IP: port). Ceci est une table de membres indiquant quels sont les participants actifs dans le chat. Il doit donc être multidiffusé pour le groupe. –