Problème lors de l'écriture dans une socket
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é
Code:
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);
}
} |
Mon envoi de données au client
Code:
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 ";
}
} |
Je vous remercie d'avance et s'il vous plus de code n'hésitez pas!