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...
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.
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; }
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. :)
Partager