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

C Discussion :

Close() ou Shutdown() une socket


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 6
    Par défaut Close() ou Shutdown() une socket
    Bonjour !

    En somme j'ai un serveur qui va créer une socket positionnée avec listen() et X thread qui bouclent sur accept() (accept d'une connexion venant de la socket positionnée avec listen())
    Et lors de la terminaison de mon serveur j'avais dans l'idée de close() les sockets ouvertes par les threads avant de kill les threads. Donc ici soit mes sockets ont été ouvertes et sont entrain de lire un message entrant avec recv() ou le thread est en attente passive avec accept() et la socket n'a pas encore été ouverte.
    Donc en somme si le thread à accepter la connexion et qu'il est toujours dans recv() lors de la fermeture je pensais forcer l'arrêt de recv() en fermant la socket avec close() depuis le thread principal.
    Or après quelques recherches j'ai découvert shutdown() qui semble ne pas avoir exactement le même effet que close() (mais en vrai je suis pas du tout sûre d'avoir compris la différence) et je me demandais quelle était la façon la plus propre de fermer mes sockets puis mes threads.

    Merci !

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2017
    Messages : 6
    Par défaut
    Après quelques recherches j'ai apparemment trouvé une solution.
    Alors je n'en sais toujours pas beaucoup plus sur shutdown() mais au moins j'ai appris que shutdown() va fermer la socket sans la détruire et surtout réveillera la fonction accept() et stoppera recv(). En combinant tout ça avec un mutex bien placé il est possible d'indiquer au thread qu'il est temps de s'arrêter et donc de suivre une procédure propre pour bien stopper et free tout ce qu'il était en train de faire.

    Bon bas du coup je laisse ça là si jamais qqun a le même problème.

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 23/09/2005, 13h50
  2. Ouvrir une socket
    Par mseprog dans le forum Développement
    Réponses: 1
    Dernier message: 27/04/2005, 17h33
  3. [VB.NET] Probleme pour réutiliser une sockets ??
    Par fdiedler dans le forum Windows Forms
    Réponses: 12
    Dernier message: 10/03/2005, 14h37
  4. [Réseau] plusieurs flux a partir d'une socket
    Par al85 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 27/01/2005, 18h11
  5. write() dans une socket.. unix
    Par slack dans le forum Réseau
    Réponses: 5
    Dernier message: 18/12/2002, 20h42

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