Problem mit Struct



  • Hi Alle,
    Ich habe ein Problem mit Struct. Ich schreibe gerade ein Programm fuer ein Server-Client Kommunikation. Der Server akzeptiert nur ein bestimmtes Format von Anfragen(QueryHeader+Anfrage). Ich habe folgende Struct in VC++ definiert.
    typedef struct Anfrage1
    {
    long Id;
    float GFactor;

    } Anfrage1;
    typedef struct Anfrage2
    {
    ........
    }
    ..............
    typedef struct QueryHeader
    {
    long PLength;
    long Version;
    long Step1;
    long Step2;
    } QueryHeader;
    Denn es noch andere Formate von den Anfragen gibt, kann ich sie nicht einfach direkt in "QueryHeader" definieren.
    Um die Anfrage an den Server zu schicken, ist hier die Funktion
    Send( const void* lpBuf, int nBufLen, int nFlags = 0 )
    von Klasse CAsyncSocket benutzt.
    Meine Frage ist, wie kann die 2 Structs zusammenbinden, also QueryHeader+Anfrage1, und mit Send Funktion die ganze an den Server schicken.
    :xmas1: :xmas1: :xmas1:



  • vielleicht ne neue struktur, die jeweils einen zeiger auf die 2 anderen structs hat...

    dann einfach die ganze neue struktur der funktion übergeben...

    ich weiß aber nicht, was experten zu meiner idee sagen!



  • wenn du meinst, dass ich so eine Struct definiere,
    TypeDef Struct Query
    {
    void *header;
    void *q;
    }
    habe ich schon probiert. Es wird nix anderes an den Server geschickt, als 2 Speicheradresse.
    😕 😕 :xmas2:



  • Das Problem ist gelöst.
    Man braucht dazu ein char *P. Und mit memcpy kopiert man einfach die Inhalt in den char Pointer.

    MfG
    :xmas1: :xmas1: :xmas1:


Anmelden zum Antworten