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

WinDev Discussion :

Problème de fermeture de socket


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Problème de fermeture de socket
    Bonjour

    Je développe un applicatif basé sur un serveur et des clients, le tout communiquant par sockets.
    J'ai donc développé un serveur de sockets sur lequel peuvent se connecter plusieurs clients simutanément.
    Sur chaque client, il y a donc une socket d'ouverte sur le serveur. Il y a également un thread secondaire (procedure threadEcoute lancée en automatique) qui boucle en attente des messages du serveur (j'ai entre autre dans la boucle un "SocketLit("SocketClient", Faux, 70)"). Si un message arrive du serveur, je lance à partir de threadEcoute() une procédure threadTraiteMessage(leMessage) dans un thread qui va traiter le message. Jusque là, tout est normal et conforme à ce qui est préconisé dans le doc Windev.
    Si le client reçoit un message de deconnexion du serveur (par exemple le serveur va être arrêté et demande à tous les clients connectés de se déconnecter proprement de leur côté), alors côté client je ferme la socket "SocketFerme("SocketClient")" . Or la fermeture me génère souvent une erreur disant que la socket "SocketClient" est utilisée par un autre thread. A priori, cela se produit lorsque la fermeture de la socket intervient alors que le thread d'écoute est en train de lire cette même socket.

    Est-ce que quelqu'un a déjà été confronté à ce problème et quelle solution adoptée ? Comment faire pour éviter cela ?


    J'espère avoir été assez clair et vous en remercie d'avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    De ce que j'en comprends le seul problème c'est ton thread qui occupe le canal en écoutant, un simple ThreadArrete() devrait suffir non?

    ThreadArrête(<Nom du Thread> [, <Durée maximale>])

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'ai déjà essayé de mettre fin à ce thread, mais l'erreur survient toujours de manière aléatoire.

    Merci pour la réponse

Discussions similaires

  1. problème de fermeture de socket
    Par PyNub dans le forum Linux
    Réponses: 1
    Dernier message: 08/05/2012, 22h46
  2. Problème de fermeture de sockets
    Par Shredder dans le forum Web & réseau
    Réponses: 28
    Dernier message: 15/09/2007, 09h21
  3. [Thread][socket]Problème de fermeture d'un thread
    Par meda dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 04/11/2004, 01h03
  4. [Linux] Probleme de fermeture de Sockets
    Par diefo dans le forum Réseau
    Réponses: 6
    Dernier message: 30/12/2003, 13h10
  5. problème de compil devc++ socket
    Par stefdem dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/12/2003, 11h33

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