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 :

Conseils pour synchroniser deux appli Qt


Sujet :

Réseau

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    octobre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : octobre 2018
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Conseils pour synchroniser deux appli Qt
    Bonjour à tous, j’ai crée une appli Qt pour pc qui sauvegarde des informations dans deux fichiers texte et qui contient un dossier ressources avec des pdf dedans.
    J’ai aussi développé une appli android qui lit ces deux fichiers et ce dossier ressources. Actuellement je copie le dossier ressources et les deux fichiers du pc dans la tablette. Mais j’aimerais avoir un bouton synchroniser sur l’appli android, afin que ceci soit automatique. Je sais envoyer un message court en qtcp mais, là je ne sais pas du tout comment faire de manière globale. De plus je n’arrive pas a envoyer des fichiers texte ou pdf en qtcp , avec ou sans networkmanager. Je suis en qt5.12, et le projet est open source. Je voudrais dans un premier temps juste une explication sur la demarche globale. Si une ame charitable passe par là...
    Merci a tous pour les réponses éventuelles et le temps que vous avez pris a me lire.
    Ps: Vu que ce n’est pas des serveurs mais juste des applis, j’ai abandonné l’idée de qftp et des requetes http mais peut-être que ce n’etait pas le bon choix ?

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    25 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 25 807
    Points : 181 200
    Points
    181 200
    Par défaut


    Si tu veux passer par HTTP, il te faut un serveur HTTP d'un des deux côtés. Certes, Qt en a un, mais il n'est pas (encore ?) inclus dans la distribution de base : https://github.com/qt-labs/qthttpserver. Je ne suis pas sûr de le recommander.

    Sinon, pour TCP, c'est toi qui définis tout ton protocole. Il te faut, à un moment, émettre le message "ce qui suit est un fichier", puis le fichier (tous les octets du fichier — fais attention à bien lire en mode binaire, sinon tu auras vite des problèmes avec des formats comme le PDF), puis le message "fin du fichier" (peut-être implicitement, en donnant au début la taille du fichier à recevoir : c'est ce que fait HTTP).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    octobre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : octobre 2018
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour, merci pour la reponse rapide, je pourrais donc creer un fichier texte de chaque cote, qui contient juste un entier qui et incrémenté a chaque modification sur les fichier texte ou ajout de document dans le dossier, je commence en me connectant a l’application pc, et recois la valeur cote serveur si elle est differente que celle de la tablette c’est qu’il faut lancer la synchronisation. Dans ce cas, j’envois le fichier 1 puis le fichier 2, puis un fichier contenant l’arborescence du dossier, a partir de ce moment là, le client envoie le nom de chaque fichier, puis il se deconnecte. Je pense me passer de la taille car les plus gros fichiers font 10MO et c’est du wifi, je récupèrerais juste côté client la taille reçu que j’afficherais. Simple et efficace. Qu’en pense tu ?

    Je cherche donc aussi comment envoyer le fichier en binaire ? Et une explication des principaux slots de qtcpsocket. Si possible.

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    25 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 25 807
    Points : 181 200
    Points
    181 200
    Par défaut
    Le seul problème, si tu te passes de la taille, c'est qu'il faut un marqueur pour le début et la fin de fichier, un truc qui ne peut pas se trouver dans le contenu du fichier que tu transmets.

    Pour envoyer du binaire, tu dois d'abord lire le fichier en binaire, puis l'écrire en binaire. Tu devrais trouver ça dans https://stackoverflow.com/a/30305474/1066843 ou https://doc.qt.io/qt-5/qtbluetooth-b...r-example.html.

    Les signaux et slots sont décrits dans la doc : https://doc.qt.io/qt-5/qtcpsocket.html, surtout dans https://doc.qt.io/qt-5/qabstractsocket.html.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    octobre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : octobre 2018
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Je pensais plutot creer un serveur sur le port 2000 par exemple pour le numero, en parallele un serveur sur le port 2001, dès qu’il y a une connection sur ce port làil envoie le fichier 1 etc quand je reçois le signal readall, je sais que c’est fini. Non ?

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    25 807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 25 807
    Points : 181 200
    Points
    181 200
    Par défaut
    Sauf que readAll() ne peut lire que toutes les données qui sont arrivées (tous les paquets TCP réceptionnés), il n'y a aucun moyen au niveau de TCP pur de savoir s'il doit encore arriver un paquet ou pas.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/10/2013, 21h31
  2. [Couplage] Bon design pattern pour synchroniser deux modules (Adapter, Observer ?)
    Par Steph0 dans le forum Design Patterns
    Réponses: 2
    Dernier message: 21/06/2013, 15h16
  3. Réponses: 1
    Dernier message: 23/03/2013, 23h21
  4. Réponses: 4
    Dernier message: 06/12/2006, 11h46
  5. un conseil pour démarrer une appli graphique SVP.
    Par dprevots dans le forum Langage
    Réponses: 6
    Dernier message: 22/01/2006, 18h49

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