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

Développement Discussion :

Renseignement architecture client/serveur


Sujet :

Développement

  1. #1
    Membre actif Avatar de Tom487
    Homme Profil pro
    Étudiant informatique
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Points : 253
    Points
    253
    Par défaut Renseignement architecture client/serveur
    Bonjour à tous,

    Je créer actuellement un superviseur de robot, en C++ avec QT et je fais communiquer les deux applications (celle du robot et du superviseur) grâce au protocole UDP, mais là n'est pas la question.

    Je rencontre un problème de modélisation, j'ai du coté de mon serveur énormément de données différentes à envoyer à mon client, comme par exemple, la localisation qui peut être un int, un string ou un triplet d'int ou encore des erreurs.
    Et pour l'instant je ne vois pas d'autre solutions que de faire un immense switch du coté client afin de savoir quelle genre de données arrive et la traiter en conséquence.
    Par exemple que le sous type de la trame soit 1, c'est définit comme une donnée de localisation int donc je traite un int. Et ainsi de suite pour tous les sous-types qui existe...

    J'aimerais savoir si vous connaissez une solution plus générique qui permette une meilleur maintenance du code dans le futur, le besoin étant de pouvoir ajouter facilement d'autres sous-types par exemple.

    J'espère avoir été clair, merci pour votre aide.

    Cordialement

    Tom.
    Tom.

  2. #2
    Membre actif Avatar de Tom487
    Homme Profil pro
    Étudiant informatique
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Points : 253
    Points
    253
    Par défaut
    Bon après avoir cherché j'en suis arrivé à cette conclusion :
    La méthode qui me parait la plus avantageuse est de créer une map<int, pointeur de classe/structure> afin de créer automatiquement de quoi sauvegarder les données. Tout ceci grâce aux templates afin de ne pas avoir à se soucier du type mais de l'ordre dans lequel les données arrivent.
    Je m'explique, lorsque je vais recevoir 1 par exemple, j'aurais trois donnée de type int derrière, ma map va donc créer automatiquement la structure/classe correspondante à un et, grâce à une méthode template remplir les données dans la classe ou structure génériquement sans se soucier d'autre chose que du nombre de données.
    Je pense cela possible mais il me reste quelques petits détails technique qu'il me faut éclaircir, je vais donc attendre un peu avant de passer ce sujet en résolu, si vous avez des questions ou un problème un peu similaire n'hésitez pas.
    Tom.

  3. #3
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 566
    Points : 7 300
    Points
    7 300
    Par défaut
    Bonjour,

    Tu peux regarder du côté des TLV (Type-Length-Value): en gros, tu structure tes paquets en indiquant à chaque fois le type, la taille de ce qui suit ainsi que la valeur.

    Du coup, en ce qui concerne le type tu n'as plus qu'à définir les types natifs (ex: int, string, etc) et tu pourras donc connaître directement ce qui arrive dans ton paquet.

    Tu peux même encapsuler tes TLV dans d'autres TLV pour les structurer (un peu à l'image des XML) ou les concaténer...


    A partir de là, tu peux aussi construire une couche d'abstraction par dessus tout ça pour créer tes différents objets.
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  4. #4
    Membre actif Avatar de Tom487
    Homme Profil pro
    Étudiant informatique
    Inscrit en
    Avril 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 111
    Points : 253
    Points
    253
    Par défaut
    Salut , j'avais oublié ce topic ^^.
    Je te remercie de ta réponse, j'y penserais pour mes futures applications.
    En définitive j'ai choisis une option différente, principalement j'avais des informations à envoyer à une interface graphique, donc je me suis arrangé pour que celui qui envoi les données envoi le nom du label ou elle devait être afficher et la valeur, le tout en QString.
    Comme ça juste a faire un emit et hop pas besoin de switch.
    Je passe le sujet en résolus.
    Bonne journée.
    Tom.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [UDP] Architecture Client/Serveur
    Par Bob.Killer dans le forum Développement
    Réponses: 1
    Dernier message: 25/04/2008, 11h09
  2. Application avec architecture client/serveur
    Par loreleï85 dans le forum Développement
    Réponses: 4
    Dernier message: 09/05/2007, 08h16
  3. MySQL en architecture client/serveur
    Par KinF dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/09/2005, 22h10
  4. [Indy] Architecture Client/Serveur
    Par yongblood dans le forum Web & réseau
    Réponses: 9
    Dernier message: 22/08/2005, 01h18

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