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 :

Problème lors de l'écriture dans une socket [Débuter]


Sujet :

Réseau

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut 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 : 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);
        }
    }
    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
     
    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!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juin 2010
    Messages : 257
    Par défaut
    Problème résolu !

    Je suis passé aux QTcpSocket et QTcpServer est maintenant tout marche !
    Je n'ai plus les problèmes de removeServer et d'écriture dans la Socket.
    De plus, la QTcpSocket qui hérite de QAbstractSocket est beaucoup plus riche en terme de fonctionnalité même si QLocalServer n'est pas mal non plus !

    Si cela vous intéresse je vous met le lien de QTcpSocket : http://qt.developpez.com/doc/latest/qtcpsocket.html

    et le lien de QLocalSocket :http://qt.developpez.com/doc/latest/qlocalsocket.html

    Comme ça vous pourrez vous faire votre propre idée !

    A bientôt !

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

Discussions similaires

  1. Problème lors de l'écriture dans un fichier texte
    Par Iron-Avenger dans le forum Débuter
    Réponses: 8
    Dernier message: 28/04/2013, 11h13
  2. Réponses: 0
    Dernier message: 08/02/2013, 13h35
  3. Exception levée lors d'un write dans une socket
    Par Anium dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/03/2011, 09h41
  4. Réponses: 2
    Dernier message: 25/09/2009, 12h56
  5. Problème lors de l'écriture dans un fichier.
    Par captainflex dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 16/05/2007, 13h42

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