Bonjour,
est-il possible d'effectuer plusieurs écoute UDP sur le même port d'une machine?
Si oui comment procéder? Après diverses recherches je ne parviens pas à trouver la solution.
Merci d'avance pour votre aide.
Bonjour,
est-il possible d'effectuer plusieurs écoute UDP sur le même port d'une machine?
Si oui comment procéder? Après diverses recherches je ne parviens pas à trouver la solution.
Merci d'avance pour votre aide.
J'espère que tu trouvera ce que tu cherche par ici :
http://bytes.com/groups/net-c/233554...apps-same-time
J'ai une application écrite en C# et qui envoi des paquets broadcast en UDP et je n'ai jamais eu de probleme pour lancer deux instances en écoute sur le même port sur Linux (avec Mono) par contre, impossible sur OS X (Mono) ou Windows (.NET).
Sur linux, le message est repeté sur les deux client, il faut donc pouvoir identifier les loopback, pour ça j'utilise un Guid.
D'après le site de emmr.rida, ça semble possible sur Windows, ça doit se jouer au niveau des SocketFlags ou/et des SocketOptions, mais je n'ai pas le temps d'essayer.
Puisque je lance uniquement les deux client pour faire des tests de dev et que je programme sur linux, ça ne cause pas vraiment de probleme, mais si il existe une solution pour les deux autres OS du marché, je suis aussi intéressé, ca m'éviterai d'avoir à démarrer une deuxième machine pour faire mes tests ...
Fedora 12 x64 (laptop) - OpenSuSe 11.2 (desktop)
Hébergeur d'images et de fichiers (< 75Mio) gratuit et sans pub
normalement, en C++ (je suppose qu'en C# c pareil mais ca fait longtemps que j'ai pas touché aux sockets), tu peux lire le contenu de la socket sans la vider
Donc, cela est surement faisable en C#, suffit de trouver la bonne propriété![]()
The Monz, Toulouse
Expertise dans la logistique et le développement pour
plateforme .Net (Windows, Windows CE, Android)
Oui, Socket.Receive avec le drapeau SocketFlags.Peek permet de lire le buffer sans y toucher. Mais si plusieurs processus peek sans passer par le mode normal de Receive ne vas pas causer un étranglement du buffer et des pertes de messages?!
J'ai fais :
Cela fonctionne pas mal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 UdpClient listener = new UdpClient(); listener.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); groupEP = new IPEndPoint(IPAddress.Any, listenPort); listener.Client.Bind(groupEP);
Merci à tous pour vos réponses !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager