S'annoncer en broadcast

Azxx Messages postés 14 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 15 mai 2012 - 24 avril 2012 à 15:36
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 24 avril 2012 à 16:59
Bonjours, je suis actuellement en train de travailler sur une application c#. Losque je clique sur un bouton de mon programme, celui-ci doit s'annoncer dans le sous réseaux et voir si, sur un autre pc (du même sous réseaux) ce bouton à déja été pressé avant.
en gros, le premier pc qui presse sur le bouton devient le serveur (car celui-ci se rend compte qu'il est seul) et tout ceux qui viennent après, deviennent des clients et se connectent au serveur. (Quand je clique sur le bouton après le 1er, le programme remarque qu'il n'est pas le premier et qu'un serveur existe déjà et il s'y connectent)

le problème est que je ne sais pas comment m'y prendre..

Si quelqu'un de vous a des tuyaus pour m'aider je suis preneurs.
Merci d'avance,
Azxx.

6 réponses

cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
24 avril 2012 à 15:46
Bonjour,
est ce que ton "serveur" va toujours écouter sur le même port ou est ce que ça sera décidé de façon aléatoire? Sinon suivant la taille de ton sous réseau tu faire une boucle qui essaie d'ouvrir des sockets sur toutes les adresses.
Cela dit il y a peut être plus simple.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 avril 2012 à 16:11
Le principe dans ce genre de situation, c'est que d'une part toutes les machines écoutent sur le même port (port serveur) et d'autre part, tu fais une annonce du type :

- Envoie en broadcast d'un message "Qui est le serveur ?"
- Le serveur répond un message "C'est moi le serveur", donc tous les clients (y compris la station émettrice) récupèrent les coordonnées du serveur
- Pas de réponse au bout d'un temps défini (timeout), la machine émettrice bascule en mode serveur et envoie le message "C'est moi le serveur". Tous les clients récupèrent les coordonnées du (nouveau) serveur.

Bien sur, après, on peu étoffer le protocole pour gérer d'éventuels conflits, des négociations de changements de serveurs, etc ...

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
Azxx Messages postés 14 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 15 mai 2012
24 avril 2012 à 16:17
Oui je pensais aussi faire quelque chose comme cela, malheureusement la partie réseaux n'est vraiment pas ma tas de thé, comment envoyé de simple message en broadcast ?

je parle ici de façon plus spéicifique, aux niveaux du code.
Mais merci pour ta réponse je vais surement chercher de ce coté la
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 avril 2012 à 16:24
Tu ouvre un socket réseau, mode UDP, adresse destination 255.255.255.255
(à condition évidemment que tu sois sur un réseau éthernet TCP/IP)


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Azxx Messages postés 14 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 15 mai 2012
24 avril 2012 à 16:40
Aurais-tu un exemple de la manière dont il faut coder tout sa j'avou que je suis un peu perdu (je débute dans le réseaux)

Comment envoyé un message ?
Comment reconnaître le message ?
comment répondre à un message .. ?

Merci
Azxx.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
24 avril 2012 à 16:59
Regarde là : http://dotnet.developpez.com/cours/?page=csharp#networkcs


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
Rejoignez-nous