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

Réseau .NET Discussion :

udpclient en localhost


Sujet :

Réseau .NET

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 64
    Points : 42
    Points
    42
    Par défaut udpclient en localhost
    Bonjour tout le monde,
    J'ai un petit souci pour lire des données sur un port udp en localhost.
    j'ai un programme sur un PC qui envoit des données en localhost sur le port 1853.
    Mon programme doit recevoir ces données sur ce même PC et les traiter.
    Hors dans la boucle while le programme reste bloqué sur la commande "Receive".
    Ci dessous le programme de test que j'utilise pour comprendre pourquoi ça ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    IPEndPoint ip = null;
    ip = new IPEndPoint(IPAddress.Any, 1853);
    client = new UdpClient(ip);
    client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
    client.Client.Bind(ip);
     
    while (!stopping)
    {
        IPEndPoint ip = null;
        byte[] recData = client.Receive(ref ip);
        Thread.Sleep(10);
    }
    J'ai testé différente configuration de IPEndPoint avec une adresse null, avec une adresse en "Any", ... je n'arrive pas à recevoir de donné!
    est ce que quelqu'un à déjà eu ce genre de problème?
    d'avance merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Salut!

    A mon avis, le problème vient de ta boucle et plus précisément de la ligne suivante:Ce ne serait pas plus logique de définir ip avant la réception?
    Du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IPEndPoint ip = new IPEndPoint(IPAddress.Any,1853);
    byte[] recData = client.Receive(ref ip);
    if (recData.Length > 0)
         //...

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Salut Framebreak,
    Merci pour ta réponse.
    Effectivement cela ne pouvait pas marché comme le code que j'avais écrit plus haut, mais j'ai essayé plusieurs ipendpoint : any, 127.1.1.1, any,... mais cela ne fonctionne tjs pas!
    ci dessous le code qui me semble le plus logique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    IPEndPoint ip = new IPEndPoint(IPAddress.Any, 1853);
                client = new UdpClient(ip);
                client.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
     
     while (!stopping)
     {
           IPEndPoint ip = new IPEndPoint(IPAddress.Any, 1853);
           byte[] recData = client.Receive(ref ip);
           Thread.Sleep(10);
    }
    Des idées?

  4. #4
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Points : 713
    Points
    713
    Par défaut
    Ton problème ne vient pas de l'adresse IP puisque IPAddress.Any indique que le client doit écouté sur toutes les interfaces réseaux.
    A mon avis tu confond serveur et client.
    Je pense que le code suivant devrait permettre la réception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UdpClient client = new UdpClient(1853);
      while (!stopping)
     {
           IPEndPoint ip = new IPEndPoint(IPAddress.Any, 1853);
           byte[] recData = client.Receive(ref ip);
           if (recData.Length > 0)
                      stopping = true;
           else
                      Thread.Sleep(10);
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Merci j'ai résolu mon problème

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/09/2005, 15h36
  2. neither host 'localhost.localdomain' nor 'localhost'
    Par gaudy dans le forum Administration
    Réponses: 1
    Dernier message: 02/08/2005, 15h19
  3. temps de réponse localhost\réseau: troublant...
    Par Nickytchao dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 17/01/2005, 08h24
  4. ERROR 2003: Can't connect to MySQL server on 'localhost'...
    Par tonton54 dans le forum Installation
    Réponses: 8
    Dernier message: 25/04/2004, 16h51

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