Bonjour,

j'ai un petit problème :

Je suis en train de tenter de faire un peu de communication reseau sur mon programme (TCP).

Dans le protocole déjà défini (puisque je reprends le programme), au début de chaque trame, je dois envoyer un en-tête qui est une structure.

Ce que j'aurais voulu faire, c'est utiliser l'opérateur << comme je le fais déjà lorsque je veux faire transiter des types connus (quint8, QString ...).

Par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
QByteArray data;
QDataStream out(&data, QIODevice::WriteOnly);
out << (quint16) 0;  // Fonctionne
out << header;   // Ne fonctionne pas, header ne fait pas partie de la arguments list de QDataStream &operator
sachant que header est une structure qui ressemble à ça :
(Note cmdType est de type enum)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
// format d entete des commandes
typedef struct _cmdHeader
{
    cmdType     m_stCmd; // valeur de la commande
    quint32       m_dwSize; // taille de la structure de commande
    quint32       m_dwNextCmdOffset; // position de la prochaine commande dans le cas 
                                   //  des protocoles
} cmdHeader;

Comment je pourrais faire sachant que de l'autre côté (côté serveur) j'aimerai aussi récupérer cette structure avec l'opérateur réciproque ?