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 :

Problème à la destruction de tcp::socket


Sujet :

Boost C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2011
    Messages : 88
    Par défaut Problème à la destruction de tcp::socket
    Bonjour,

    Pour mon programme serveur/client, j'utilise les tcp::socket.

    J'ai une classe connector qui attend la connexion d'un client, et lorsque la connexion est faite, le connector crée la session et lui passe un pointeur vers ma socket (je n'utilise pas les smart pointeur, c'est voulu).

    Mon problème c'est que j'ai deux cas où je dois détruire la socket :

    - Soit le client se déconnecte de lui-même et dans ce cas pas de soucis je peux la delete sans erreur

    - Soit c'est le connector, qui contient l'io_service avec lequel est créée la socket, qui est détruit et cela déconnecte mon client. Ça me permet de couper mon programme en déconnectant proprement tous les clients connectés.

    Et c'est précisément dans mon 2ème cas que mon problème arrive. En effet, si je delete la socket, le programme crash car elle a déjà été fermée (je ne sais si j'emploie les bons mots) lorsque le connector a été détruit.
    Il me faut un moyen de tester si la socket est encore connectée ou quelque chose du genre, mais dans tous les cas ça ne m'arrange pas parce que je ne peux pas libérer la mémoire ...

    J'ai tenté d'inverser le processus et de détruire le connector après la déconnexion des clients mais j'ai alors une runtime error à sa destruction ...

    Si je ne libère pas la mémoire ça risque de s'accumuler lorsque je ferais un redémarrage du serveur, mais je la libère, je fais tout planter ...

    Merci d'avance pour vos conseils/remarques.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2011
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Août 2011
    Messages : 88
    Par défaut
    Problème résolu, ce n'était pas les soket qui faisaient crasher comme je le pensais. Et en effet les clients sont bien déconnectés lorsque l'io_service auquel sont liées les sockets est détruit.

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

Discussions similaires

  1. Problème de destruction de session
    Par nmathon dans le forum Langage
    Réponses: 3
    Dernier message: 15/08/2006, 16h42
  2. problème de connexion sur un socket SSL
    Par koolway dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 21/06/2006, 11h20
  3. problème de destruction de composants dynamique
    Par gandf dans le forum C++Builder
    Réponses: 4
    Dernier message: 23/08/2005, 10h39
  4. Problème de destruction
    Par loupdeau dans le forum MFC
    Réponses: 4
    Dernier message: 17/03/2005, 10h37
  5. Réponses: 3
    Dernier message: 21/09/2003, 15h52

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