Comment faire la découverte du réseau en utilisant la diffusion UDP
Je veux faire la découverte du réseau à l'aide de Diffusion UDP en C#. Je ne sais pas comment faire. Pouvez-vous me donner des conseils sur la façon de le faire?
Je veux faire comme ceci tutoriel.
source d'informationauteur NTK88
Vous devez vous connecter pour publier un commentaire.
Il est très simple à faire même chose en C#
Serveur:
Client:
Voici une autre solution qui est sans serveur. J'ai eu un besoin d'avoir un tas de framboise pis être attentifs les uns aux autres sur un réseau, mais n'avait pas de garanties de la personne qui serait active. Donc, cette approche permet à chacun d'être un client! La bibliothèque complète est disponible sur GitHub (disclaimer: j'ai créé) et qui rend l'ensemble de ce processus vraiment reaaaally facile pour UWP apps.
https://github.com/mattwood2855/WindowsIotDiscovery
Cette solution suppose que les noms de périphériques sont uniques et que vous souhaitez utiliser chaînes JSON comme protocole de communication, mais vous pourriez facilement vous suffit d'envoyer n'importe quel autre format. Aussi, dans la pratique try-catch tout 😉
Le mécanisme général:
Découvrir votre IpAdress
Configurer votre écouteur
Gérer les données
Envoyer un message
L'idée serait d'envoyer une découverte message contenant votre nom et l'adresse ip. Puis dans recevoir le message de la fonction ajouter l'ip-nom de paires pour une Liste des périphériques. Ajouter un peu de logique, pour éviter les doublons et de mise à jour de l'adresse Ip si les changements d'ip pour un nom donné.
Comme un bonus, vous pouvez avoir chaque périphérique envoyer la liste des appareils qu'ils connaissent. Cela vous permet de réduire le trafic udp, ne pas répondre lorsque l'expéditeur est conscient de vous. Vous pouvez même avoir le récepteur de comparer la liste à l'encontre de leur propre liste pour découvrir d'autres appareils.
La redondance est votre ami avec UDP, il n'y a aucune garantie qu'un paquet sera livré.
J'ai eu la même question, mais elle n'a pas été facile pour moi que la réponse de @rufanov suggère.
Ici, d'une situation que j'avais:
Après quelques recherche et de travail, je suis arrivé à cette solution. Ce code correspond à la serveur côté et faire la découverte de réseau de tous les matériels répondant à la braodcast message.
Je sais que c'est vieux, mais quelqu'un peut encore avoir besoin de cette...accepté La réponse est grand, mais avec cette petite astuce sur le côté serveur, c'est encore mieux.
Correctif pour les Ilya Suzdalnitski commentaire (se bloque sur la deuxième Client.Recevoir un appel):
Parce que, après chaque réponse, le serveur est fermé et recréé, il peut à travailler sans s'arrêter, sans verrouillage.