Originariamente inviato da Ippo343
Ma si non mi sembra così difficile, si può andare con una serializzazione molto ingenua, senza andare a tirare fuori grandi robe.

[...]

Quindi, dal mittente invii un intero. Il ricevente legge un intero, alloca una struttura Data e riempie il campo n con l'intero che ha letto, lasciando il puntatore indefinito o al massimo a NULL.

Il mittente invia un altro intero che è il numero di interi nell'array. Il ricevente alloca un array di x elementi e assegna l'indirizzo dell'array al puntatore v della struttura.

Il mittente invia gli x elementi dell'array. Il ricevente li legge e li inserisce in ordine nell'array allocato.

Et voilà
Va bè... sì, si può fare anche così, ma quello comunque che vi ho riportato è un esempio semplice. In realtà io dovrei inviare delle strutture molto più complesse e, come vi dicevo, mi interesserebbe inviare degli array di strutture, per cui così facendo diventerebbe laborioso. Cercavo appunto una soluzione per poter inviare tutto in un unica send (e ricevere tutto in un'unica receive) utilizzando dei buffer più grandi che possano contenere i dati.

Originariamente inviato da MItaly
A livello un po' più avanzato c'è Boost.Serialization.
Mi avevano già parlato della libreria Boost ma avevo avuto qualche difficoltà a capirla. :master: Dal link che mi hai dato comunque sono riuscito ad accedere anche a qualche altra pagina che la spiegava e pare che io ci abbia capito qualcosina in più.
Questa va bene sia per inviare strutture con puntatori, sia per inviare stl container, vero?

Originariamente inviato da shodan
Non puoi. Non nella maniera in cui intendi almeno. E questo vale per ogni dato che sia diverso da un tipo elementare C, una struct contenente puntatori, o tipi C++ (string, vector etc).
Un modo elegante ci sarebbe, ma richiede un pò di lavoro in più.

http://www.parashift.com/c++-faq-lit...alization.html
Più tardi mi leggo anche questo, grazie.