Empfangene QTcpSocket Daten in eignes Union speichern
Verfasst: 23. September 2010 16:20
Moin.
Meine Anwendung empfängt über einen QTcpSocket Daten. Diese möchte ich in ein struct bzw. union speichern welches vereinfacht etwas so aussieht:
Der readyRead() Slot sieht bei mir so aus:
Das scheint soweit auch zu funktionieren. Da ich aber noch sehr frisch in Qt bin, würde ich gerne mal einige Meinungen hören ob das so der beste/eleganteste Weg ist, oder ob man das besser lösen könnte.
Was mich an der Lösung schon mal stört ist, dass ich die Funktion memcpy verwende und somit windows.h einbinden muss.
Muss ich sonst irgendetwas in der Socket-'Empfangsroutine' beachten? Gibt es noch irgendwelche Stolperfallen?
Vielen Dank.
Edit: Schreibfehler korrigiert
Meine Anwendung empfängt über einen QTcpSocket Daten. Diese möchte ich in ein struct bzw. union speichern welches vereinfacht etwas so aussieht:
Code: Alles auswählen
typedef struct
{
int Length;
int Type;
union
{
MyText Texts;
MyData Data;
MyXYZ XYZ;
};
} MyComDef;
Code: Alles auswählen
void QSocketEngine::ReadFromSocket()
{
QByteArray ByteArray;
ByteArray = m_pTcpSocket->readAll();
memcpy(&m_MyCom, ByteArray.data(), ByteArray.count());
}
Was mich an der Lösung schon mal stört ist, dass ich die Funktion memcpy verwende und somit windows.h einbinden muss.
Muss ich sonst irgendetwas in der Socket-'Empfangsroutine' beachten? Gibt es noch irgendwelche Stolperfallen?
Vielen Dank.
Edit: Schreibfehler korrigiert