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 :

QTcpSocket et QThread


Sujet :

Réseau

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 6
    Points : 7
    Points
    7
    Par défaut QTcpSocket et QThread
    Bonjour, j'ai actuellement un serveur qui envoie des trames à tout les clients qui se connecte via TCP/IP. J'ai pour cela réalisé une classe permettant d'ouvrir une connexion par socket (QTcpSocket) et de lancer un Thread de lecture (QThread). Ma classe hérite de QThread.

    Mon application fonctionne correctement, cependant, si le serveur à un problème et qu'il coupe la connexion, mon application à un problème pour détecter cette coupure...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    CTest::CTest(QString ad, int prt)
    {
        m_ip=ad;
        m_port=prt;
     
        flag=0;
    }
     
    void CTest::StopThread()
    {
        flag=0;
    }
     
    void CTest::run()
    {
        while(flag==1)
        {
            while(m_sock->canReadLine())
            {
                QByteArray lB = m_sock->readLine();
                QString lStr(lB);
                cout<<lStr.toStdString()<<endl;
            }
        }
        cout<<"Thread close"<<endl;
    }
     
    void CTest::Connect()
    {
        m_sock = new QTcpSocket();
        m_sock->connectToHost(m_ip,m_port);
    }
     
    void CTest::Deconnect()
    {
        this->StopThread();
        m_sock->disconnectFromHost();
     
        delete m_sock;
    }
    Je souhaiterai que mon Thread teste si la connexion est active, et que s'il elle ne l'est pas, qu'il essaye de se reconnecter.
    J'aimerai savoir si vous avez des idées pour réaliser ça, car j'ai déjà fait plusieurs rechercher, notamment avec les méthodes de QTcpSocket, mais rien ne fonctionne.

    Merci d'avance. :)

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Lors d'une déconnexion, le QTCPSocket retournera un code d'erreur.
    Sinon, vous pouvez mettre un mécanisme de ping, tant que vous recevez une réponse à vos pings, c'est que le serveur est présent
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Ah oui en effet je n'ai pas pensé à ça ! Merci pour ta réponse, je vais essayer.

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

Discussions similaires

  1. [QThread] Shell Extensions : avec QThread pour un QTcpSocket
    Par RapotOR dans le forum Multithreading
    Réponses: 1
    Dernier message: 22/02/2014, 17h54
  2. [QThread] Problème avec QTcpSocket et QThread
    Par luffydu22 dans le forum Multithreading
    Réponses: 2
    Dernier message: 13/10/2010, 09h26
  3. Réponses: 2
    Dernier message: 16/04/2007, 13h14
  4. Réponses: 6
    Dernier message: 07/03/2007, 14h59
  5. Réponses: 4
    Dernier message: 05/03/2007, 09h43

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