IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Contenu d'un QDataStream dans un char*


Sujet :

Réseau

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Par défaut Contenu d'un QDataStream dans un char*
    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

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    peut-être en passant par une QString avant?

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Par défaut
    Quand j'essaie de passer par une QString et de l'afficher, rien n'apparaît dans le QTextEdit :s

  4. #4
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Le plus probable c'est que ta méthode retourne sans rien lire du buffer parce que rien n'est encore disponible.
    Par ailleurs pour des communications simple, il est beaucoup plus facile d'utiliser des messages texte avec le retour à la ligne comme séparateur.

  5. #5
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Bonjour,

    A moins que la version de Qt réellement utilisée soit la 3.3, alors peut être que la référence documentaire n'est pas la bonne...
    Mais dans le doute, je proposerais quand même d'utiliser l'exemple fournit ici :

    http://qt.developpez.com/doc/4.6/qdatastream/#details

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Par défaut
    Finalement j'ai réussi à envoyer et recevoir des char*, je suis content. J'ai beaucoup lutté^^
    Par contre je suis obligé de tout afficher via qDebug, impossible de les transférer dans des QString et que le résultat soit différent de symboles insupportables :s

    Si vous avez une idée pour ça, je suis preneur^^

    Merci de votre aide

  7. #7
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Ca c'est vraisemblablement un problème d'encodage. Mais tu peux utiliser des QTextStream pour lire et écrire des QString dans le socket de chaque côté. Et là normalement plus de soucis.

Discussions similaires

  1. [DLL] Afficher le contenu d'une dll dans un Tpanel
    Par Fabs dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/08/2007, 14h30
  2. [Stream] Mettre le contenu d'un File dans un tableau de byte
    Par JohnBlatt dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 25/08/2006, 14h18
  3. Importer le contenu un fichier xml dans un autre fichier xml
    Par gedeon555 dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/07/2005, 11h49
  4. Ecire le contenu d'un memo dans une bd
    Par ApollloCrid dans le forum Bases de données
    Réponses: 7
    Dernier message: 22/07/2005, 13h58
  5. [LG]Ecrire le contenu d'un fichier dans un autre
    Par lucke dans le forum Langage
    Réponses: 10
    Dernier message: 26/04/2003, 20h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo