2016-05-25 11 views
0

über eine QUdpSocket, ich weiß, ich werde Daten erhalten, die nur diese Struktur enthalten:QUdpSocket: Ich erhalte eine Struktur, wie verwende ich sie?

typedef struct myStruct 
    { 
     int nb_trame; 
     std::vector<bool> vBool; 
    } myStruct; 

aber wenn ich neue Daten erhalten, erhalte ich ein QByteArray richtig? Also wie kann ich die empfangene Struktur verwenden?

+0

Es hängt davon ab, wie diese Struktur serialisiert wurde, bevor Ihnen gesendet wurde. – tty6

+0

@ tty6 Senden einfach so: 'MyStruct Daten; viaUdp-> write ((const char *) & data, sizeof (data)); ' –

Antwort

0

Sie können keinen Vektor serialisieren (Ihre Art, die Struktur zu senden, wird Entitätsserialisierung genannt). Ich meine, Sie können es serialisieren, aber wenn Sie versuchen, es so zu deserialisieren, erhalten Sie kein gültiges Objekt.

Sie müssen die richtige Serialisierung implementieren.

+0

Also wenn ich ein' bool myTab [20] 'anstelle meines Vektors verwende, wird es gut? –

+0

@BastienNicolau, Entity-Serialisierung ist missbilligt, und zu Recht. Es ist OK in Ihrem Haustierprojekt, aber es hat normalerweise keinen Platz in der Produktionsanwendung. – SergeyA

Verwandte Themen