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

Développement Discussion :

UDP Broadcast sur internet


Sujet :

Développement

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut UDP Broadcast sur internet
    bonjour

    j'aimerais faire un broadcast UDP sur l'internet
    je travail en c#
    quand je lance mes deux appli sur ma machine cela marche
    mais quand je les lance sur des machines sur le net ca ne fonctionne pas du tout

    (si je me suis trompé de forum et que vous savez ou je dois mettre ce message prevenez moi merci)

    voici les codes

    code de l'envoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    UdpClient udpClient = new UdpClient();
    // broadcasts identification request message to the network
    Byte[] sendBytes = Encoding.ASCII.GetBytes("USER=" + USER + "*********");
     
    // set address to broadcast address and port to PORT
    IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse("255.255.255.255"), 1818);
    //IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Broadcast, 1818);
     
    // broadcast data
    udpClient.Send(sendBytes, sendBytes.Length, RemoteIpEndPoint);
    code pour la reception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    udpClient = new UdpClient();
    IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 1818);
    udpClient.Client.Bind(RemoteIpEndPoint);
    Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
    string returnData = String.Empty;
    returnData = Encoding.ASCII.GetString(receiveBytes);
    merci si vous avez une idée
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    A supposer que les paquets sortent de ta machine, il y a fort a parier que le premier routeur venu jette tes paquets purement et simplement.

    Du broadcast sur l'internet... Tu n'as pas trouve plus gourmand en ressources ?

    On peut savoir quel est le but de la manipulation ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    recup l'adresse ip de mes correspondants
    pour etablir une connexion

    maintenant si tu as une autre idee je suis preneur
    lol

    globalement j'ai un port que je connais et un nom que je connais aussi
    style teamviewer j'aimerais pourvoir me connecter a eux pour un jeux que je fais
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Citation Envoyé par ikeas Voir le message
    globalement j'ai un port que je connais et un nom que je connais aussi
    Un nom de quoi ? De machine ? Dans ce cas, il faut que chaque client s'enregistre dans un DNS, et toi tu interroges simplement ce DNS. Il y en a pleins de gratuit, comme dyndns.org par exemple.

    En gros, je me choisis un nom (developpez), je le renseigne chez dyndns.org ce qui me donne le nom "developpez.dyndns.org", que toi tu peux joindre.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    oui en fait j'ai fait ça et l'envoi sur udp fonctionne bien
    évidement j'ai été obligé de paramétrer ma box avec un NAT aussi

    maintenant j'ai fait la chose suivante
    j'ai crée un listerner sur mon serveur (celui qui a envoyé la notification UDP)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TcpListener monListenTcp = new TcpListener(IPAddress.Any, Common.REMOTE_PORT); 
    monListenTcp.Start(); 
    TcpClient monTcpClient = monListenTcp.AcceptTcpClient();
    et sur mon client
    j'ai mis en place une version qui apres la reception de la trame udp
    tente de se connecter a ce lister
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
    
    string returnData = String.Empty;
    returnData = Encoding.ASCII.GetString(receiveBytes);
    
    if (returnData.StartsWith("USER="))
    {
        IPEndPoint TcpIpEndPoint = new IPEndPoint(RemoteIpEndPoint.Address, Common.REMOTE_PORT);
        TcpClient monClientTcp = new TcpClient(TcpIpEndPoint);
    }
    par contre je ne sais pas pour, peut etre par ce que je trourne sur la meme machine peut etre mais j'ai l'erreur suivante

    {"Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est habituellement autorisée"}

    si tu as une idéé .....
    apres peut etre que l'adresse reseau est la aussi source de probleme
    vu que l'adresse que je recois est celle de ma passerelle
    enfin son adresse interne
    soit dans ce cas 192.168.1.254

    mais j'avou que j'y comprend pas grand chose en fait ....
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Tu ne peux pas faire ce que tu souhaites en dehors d'un reseau local.

    Lorsque je te dis de passer par un DNS, c'est par un vrai DNS public. Une fois que tu l'auras choisi, il faut que tu regardes si celui-ci accepte les requetes, et si oui comment - ce ne sera pas forcement de la memem maniere pour tous les serveurs.

    Dans tous les cas, oublie le broadcast UDP.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    pour le broadcast j'ai reglé le probleme
    j'ai cree un domaine avec mon adresse IP et j'ai fait un reroutage NAT
    apres mon client se connecte dessus en faisant une resolution de domaine
    ca ca marche bien

    maintenant ce que je veux faire c que mon serveur se connect par TCP
    vers le client
    j'ai mis un listerner TCP sur le client qui accepte toutes les adresses sur une autre port (15000)
    et des que le serveur recois la trame UDP il tente se se connecter au listerner

    c la que j'ai l'erreur ...

    cela dit en faisant le test avec deux ordinateurs sur le net
    j'obtiens une autre erreur :
    "L'adresse demandée n'est pas valide dans son contexte"

    et l'adresse qui m'a ete renvoyé a l'unicast
    est celle de l'adresse réseau de la passerelle de mon correspondant
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

Discussions similaires

  1. UDP Braodcast sur internet
    Par ikeas dans le forum Réseau et multijoueurs
    Réponses: 7
    Dernier message: 05/04/2012, 11h28
  2. Les sockets UDP sur internet?
    Par chm0105 dans le forum C++Builder
    Réponses: 9
    Dernier message: 10/08/2007, 08h55
  3. visibilite de mon serveur sur internet
    Par jabaka dans le forum Apache
    Réponses: 9
    Dernier message: 03/05/2004, 14h22
  4. Réponses: 5
    Dernier message: 27/08/2003, 11h45

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