Linked list (Speicherstruktur) via Netzwerk übertragen
-
Hallo Zusammen,
derzeit knobble ich an der Frage, wie ich zwei Linked Listen von Informationsstrukturen via TCP/IP übertrage ?
Der send/receive ist nicht das Problem, sondern eher, wie
bekomme ich das ganze mit einer entsprechenden Performance hin.Eine Speicherkopie ist nicht möglich, da ich die Objekte via malloc anfordere und über einen Pointer die einzelnen Element verlinke.
Derzeit ist mein Ansatz, das ganze Elementeweise zu übertragen und auf dem zweiten Rechner die Struktur neu aufbaue.
Gibt es hier einen besseren Ansatz ?
Kann man "Link lists" auch relativ anlegen ? Dann konnte ich die Struktur
im Block übertragen ?Ein Tip für das richtige Stichwort wäre schon prima, derzeit habe ich eben noch keinen anderen Ansatz, als den obigen.
Gruss
-
Hm, die Inhalte hintereinander in ein Array, en bloc übertragen und wieder zurück zu LL? Hängt davon ab, was für Inhalte drin sind, würd ich sagen. Bei ints und floats ist es trivial, bei MySuperComplexClass wohl u.U. weniger.
Oder das ganze Ding serialisieren, komprimieren, rüberschieben, dekomprimieren und wieder in eine Liste verwursten?
Von was für Datenmengen sprechen wir denn hier überhaupt?
-
Ritchie schrieb:
Ein Tip für das richtige Stichwort wäre schon prima
Serialisierung.
boost::serialization soll das auch für die STL Container können.
-
Hallo Zusammen,
danke für die Antworten schon mal
Das sind die Strukturen, um die es geht.
Anzahl, so cirka 2000 je Struktur
typedef struct tag_XXXXInfo XXXXInfo; struct tag_XXXXInfo { time_t DateInfo[3]; int Priority; long ID; int TextID; XXXXInfo *Next; }; typedef struct tag_XXXXList XXXXList; struct tag_XXXXList { long ID; int State; XXXXList *Next; };
Die untere greift auf die obere via ID zu, um weitere Infos zu bekommen. Sie wird daher größer werden (ca. x State mal ).
Es ist sind keine wirklichen Objekte.
Gruss
den lese ich gerade:
http://en.wikipedia.org/wiki/Serialization
P.S.: Noch ist es ein C Programm, will es aber Bald in ein C++ wandeln.
Ursprung war C.