Bonjour à tous, je cherche à récupérer le contenu d'un QDataStream dans un char*.

J'utilise une socket entre deux programmes, qui s'envoient des tableaux de char. Je ne peux pas utiliser de QString (même si j'aimerais) et je dois avouer que les tableaux de char me posent beaucoup de problèmes.

D'un côté, j'ai plusieurs tableau dont :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
char trame_pret[2] = { 'R', '\0' };
Et je pensais le recevoir de cette façon de l'autre coté :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
QDataStream in(socket);
// ensuite je récupère le paquet en entier dans in, ça ça passe
    if (tailleMessage == 0) // Si on ne connaît pas encore la taille du message, on essaie de la recuperer
    {
        if (socket->bytesAvailable() < (int)sizeof(quint16)) // On n'a pas reçu la taille du message en entier
             return;
 
        in >> tailleMessage; // Si on a reçu la taille du message en entier, on la recupère
    }
 
    // Si on connaît la taille du message, on verifie si on a reçu le message en entier
    if (socket->bytesAvailable() < tailleMessage) // Si on n'a pas encore tout reçu, on arrête la methode
        return;
et ensuite j'essaie ce genre de trucs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
char* test[20];
 
in >> test;
Mais ça ne marche pas du tout, pourtant dans la doc de Qt il y a ça : http://qt.developpez.com/doc/3.3/qda...erator-gt-gt-d, donc ça doit forcément être faisable...

Avez-vous une astuce ?

Merci d'avance