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

Windows Forms Discussion :

Thread et Sockets


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut Thread et Sockets
    Bonjour à tous,

    Je souhaite tester à partir d'un thead que ma connection au serveur est toujours active.

    Pour se faire je fais la chose suivante dans Form1_Load() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    myThreadConnection = new Thread(new ThreadStart(myThreadFct));
     myThreadConnection.Start();

    Pour se faire je fais la chose suivante dans mon thread :
    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
     private void myThreadFct()
            {
     
                while (!_endThreadEvent.WaitOne(300, false))
                {
                    // Mon Socket
                    Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     
                    IPEndPoint ipEnd = new IPEndPoint(ip,port);
     
                    try
                    {
                        sock.Connect(ipEnd);
                    }
                    catch (SocketException ex)
                    {                    
                        MessageBox.Show("Déconnectée\n",ex.Message);
                        _endThreadCalculsEvent.Set();
                        myThreadConnection.Join();
                    }
                    finally
                    {
                        sock.Close();
                    }                
                }            
     
            }

    Le thread se lance bien et test toute les 300 ms que j'arrive à me connecter.

    Mon problème est que si par exemple je déconnecte le RJ45 de mon pc, et que je test mon appli en mode débug, je n'arrive pas à faire rentrer le Thread dans mon exception ???

    J'espère avoir été clair .

    Merci de vos réponse par avance.


  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Tu veux dire par là que ton thread réussi à faire le Connect même si le cable est débranché ?

    Et un autre détail qui me parait incohérent avec ce que tu dis : Tu veux tester toutes les 300 millisecondes si la connexion est toujours active mais ton thread refait une connexion toutes les 300 millisecondes...

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut
    oui tout à fait, c une erreur de ma part, désolé ;

    En fait le code est celui ci :

    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
    private void myThreadFct()
            {
     
                while (!_endThreadEvent.WaitOne(300, false))
                {
     
                    try
                    {
                        sock.Connect(ipEnd);
                    }
                    catch (SocketException ex)
                    {                    
                        MessageBox.Show("Déconnectée\n",ex.Message);
                        _endThreadCalculsEvent.Set();
                        myThreadConnection.Join();
                    }
     
                }            
     
            }
    je veux juste essayer de me conneter toute les 300ms pour voir si la connection est "active", sinon je souheterai lancer une exception.

    Désolé encore pour mon mauvais "copier-coller" du code


Discussions similaires

  1. [Linux]Thread et sockets qui ne font pas bon ménage
    Par manudwarf dans le forum Threads & Processus
    Réponses: 1
    Dernier message: 13/10/2009, 00h09
  2. Thread et sockets
    Par Antoine_935 dans le forum Réseau/Web
    Réponses: 0
    Dernier message: 18/04/2009, 00h06
  3. Boost : threads et sockets
    Par Elenaher dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 28/12/2008, 13h24
  4. [timer & thread] timeout & socket non bloquant
    Par untipy dans le forum Réseau
    Réponses: 33
    Dernier message: 22/08/2007, 08h37
  5. Threading et socket
    Par metalamania dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 08/06/2007, 12h06

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