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. 😞


Anmelden zum Antworten