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

Boost C++ Discussion :

Asio err: string iterator not dereferencable


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 120
    Par défaut Asio err: string iterator not dereferencable
    Bonjour

    Je galère pas mal avec cette erreur : string iterator not dereferencable. Des que j'envoie une string un peu trop longue je tombe sur cette assertion.
    Vu mon niveau en C++, je ne comprends pas trop comment faire pour l'éviter.

    Je suis parti du tutorial. Pour provoquer l'erreur il suffit d'envoyer un message depuis le serveur avec une string un peu longue.

    Dans le code du serveur, changer la fonction chat_session::handle_read

    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
     
    void chat_session::handle_read(const boost::system::error_code &error)
    {
    	chat_room_ptr room = m_room.lock();
    	if (room)
    	{
    		if (!error)
    		{
    			// On demande à la room de transmettre le message à tout le monde
    			room->deliver(m_message);
     
    			chat_message e;
    			e.m_type = chat_message::NEW_MSG;
    			e.m_message = "Message bien reçu mais ca va planter gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg?";
    			deliver(e);
     
    			// On relance une écoute
    			wait_for_data();
    		}
    		else
    		{
    			if (!is_leaving)
    			{
    				is_leaving = true;
    				room->leave(shared_from_this() );
    			}
    		}
    	}
    }
    Les clients reçoivent bien le message mais le serveur plante sur l'exception.

    Quelqu'un sait ce qu'il se passe réellement ?
    Comment faire pour le résoudre ?

    Merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 362
    Par défaut
    Bonjour,

    Je n'ai pas lu le tuto, mais on voit venir à vue de nez que c'est un problème de durée de vie des variables.

    En gros, ton objet "e" ne vit pas assez longtemps. Je ne suis pas rentré dans le détail, mais je te propose de commencer par valider mon intuition, par exemple en déclarant l'objet e comme membre de la classe chat_session.

    Je peux me tromper.

    Bonne chance.

Discussions similaires

  1. Input string was not in a correct format.
    Par maxwel56 dans le forum Linq
    Réponses: 9
    Dernier message: 16/02/2010, 16h14
  2. Input string was not in a correct format
    Par scubb dans le forum ASP.NET
    Réponses: 0
    Dernier message: 06/01/2010, 11h05
  3. Input string was not in a correct format
    Par Just-Soft dans le forum C#
    Réponses: 4
    Dernier message: 17/03/2009, 14h08
  4. Réponses: 2
    Dernier message: 18/02/2009, 13h30
  5. Erreur String was not recognized as a valid DateTime.
    Par andre99 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/01/2009, 20h34

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