Sérialisation en C pour la transmission d'objets
Sérialiser des objets, les convertir en tableaux d'octets à transmettre via des sockets, peut être une tâche complexe dans C. Cependant, tirer parti de la puissante API de sérialisation boost peut simplifier ce processus.
La bibliothèque de sérialisation boost fournit :
Sérialisation et désérialisation
Pour sérialiser un objet dans un tableau d'octets, utilisez ce qui suit étapes :
#include <boost/archive/binary_oarchive.hpp> #include <fstream> class Object { // ... public: void serialize(boost::archive::binary_oarchive& ar, unsigned int version) { ar & ...; } }; int main() { std::ofstream ofs("output.bin", std::ios::binary); boost::archive::binary_oarchive oa(ofs); Object object; oa << object; }
Pour désérialiser le object :
#include <boost/archive/binary_iarchive.hpp> #include <fstream> class Object { // ... public: void serialize(boost::archive::binary_iarchive& ar, unsigned int version) { ar & ...; } }; int main() { std::ifstream ifs("output.bin", std::ios::binary); boost::archive::binary_iarchive ia(ifs); Object object; ia >> object; }
En adoptant l'API de sérialisation boost, vous peut facilement implémenter la sérialisation et la désérialisation d'objets en C, offrant la flexibilité de stocker et de transmettre des données sur les sockets réseau.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!