Bonjour,
J'ai un petit soucis lorsque j'écris dans ma socket (socket->write() == -1) or ce problème n'arrive que lorsque je remove mon server qui était déjà à l'écoute.
Par contre lorsque j'utilise un nouveaux server(avec un nom différent) cela marche très bien.
Je pense que cela vient d'une mauvaise gestion de mes pointeurs. Je ne sais pas quand les delete ! Surtout côté server, car quand je stop le debug je sais pas trop comment gérer mes delete, si quelqu'un peut m'aider, cela me serai très bénéfique.
je vous met les parties de mon code concernées :
Constructeur surchargé
Mon envoi de données au client
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 LocalServer::LocalServer(QString serverName) { clientConfig = new QLocalSocket; m_server = new QLocalServer; NameServer = serverName; connect(clientConfig,SIGNAL(readyRead()),this,SLOT(ReadOK())); connect(m_server,SIGNAL(newConnection()),this,SLOT(NewConnectionOnServer())); connect(MessagingSystemSerial::getInstance(),SIGNAL(MessageReceived()),this,SLOT(SendDataToClient1())); if(!m_server->listen(serverName)) { qDebug() << "Problème le server [" << serverName << "] est déjà à l'écoute..."<< m_server->errorString() ; if(m_server->removeServer(serverName)) { RestartServer(); } else qDebug() << "Le serveur [" << serverName << "] est Offline" ; } else { qDebug() << "Installation du serveur [" << serverName << "]" ; m_server->setMaxPendingConnections(10); m_server->waitForNewConnection(2000000); } }
Je vous remercie d'avance et s'il vous plus de code n'hésitez pas!
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 void LocalServer::SendDataToClient1() { if(clientConfig) { QByteArray block = MessagingSystemSerial::getInstance()->GetDataByteArray(); if(clientConfig->write(block) == -1) { qDebug() << " L'écriture des données à échouée "; return; } else { qDebug() << " Ecriture des données "; clientConfig->flush(); } } else { qDebug() << " Les données ne peuvent pas être envoyées "; } }
Partager