|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre émérite
![]() Inscription : juillet 2008 Messages : 1 095 ![]() |
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 :
Code :
__________________
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 !!!! |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : décembre 2006 Messages : 1 612 ![]() |
Salut,
Le problème ne vient pas de ton appli, mais c'est une limitation de la façon dont internet fonctionne: le broadcast n'est pas routé sur le net, seul l'unicast l'est. Donc aucune chance qu'un paquet broadcast dépasse les limites de ton réseau local.
__________________
Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android. |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() Inscription : juillet 2008 Messages : 1 095 ![]() |
et tu pourrais pas me dire ou je pourrais trouver du code sur unicast ?
si possible en c#
__________________
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 !!!! |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : décembre 2006 Messages : 1 612 ![]() |
Unicast, ça veut juste dire "un vers un". C'est le principe de tout paquet envoyé sur le net, quel que soit le protocole (TCP, UDP, ...). Dit autrement, quand tu fais une 'bête' connexion TCP ou UDP 'classique', c'est déjà de l'unicast, (ou du "point à point" si tu préfères).
Sur le net, le seul moyen d'envoyer un même contenu à x destinataires sur le net est d'envoyer x fois le contenu, une fois pour chaque destinataire.
__________________
Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android. |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Inscription : juillet 2008 Messages : 1 095 ![]() |
oui mais si j'ai bien compris c'est que ça suppose que tu doivent connaitre l'adresse de qui tu veux envoyer
c'est la tout mon problème mon listener est sur une adresse pas fixe donc les serveur ne peuvent pas savoir a qui envoyer .... le principe que je voudrait mettre en place est le suivant : -plusieurs serveurs se signalent a mon listerner, ils communiquent leurs adresses -le listerner se connecte a eux en établissant une connections TCP pour échanger des informations si tu as une idee pour mettre en place ce principe ca m'arrangerait si tu savais ou trouver du code c# aussi merci
__________________
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 !!!! |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : décembre 2006 Messages : 1 612 ![]() |
Il faut que tu regardes du côté de la notion d'annuaire. Quand tu veux contacter quelqu'un par téléphone et que tu ne connais pas son numéro, tu ne vas pas appeler les 60 millions de numéro en France pour espérer trouver celle qui t'intéresse ; tu vas plutôt consulter un annuaire qui te donnera le bon numéro.
Concrètement dans ton cas, ceux qui veulent pouvoir être contactés vont s'enregistrer (ie. leur adresse IP) dans ton annuaire qui est situé à un endroit fixe (une simple page web chez un hébergeur gratuit peut suffire). Ces même acteurs auront pour tâche de mettre à jour leur informations (leur IP) à chaque fois qu'elles changent. Quand ton autre programme voudra les contacter, il va d'abord consulter l'annuaire pour récupérer l'ensemble des adresses IP (ou celles qui l'intéressent) et il pourra ensuite contacter directement les interlocuteurs qu'il veut.
__________________
Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android. |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Inscription : juillet 2008 Messages : 1 095 ![]() |
bon j'ai résolu une parti de mon problème pour faire un unicast
j'ai pris un domaine toto.com par exemple qui enregistre l'adresse de ma box sur le net j'ai fait un reroutage NAT sur ma box pour le port en UDP et je fais un unicast de mon client vers mon serveur avec l'adresse resolu de toto.com ca ca fonctionne bien maintenant ce que j'aurais aimé faire c'est lorsque mon serveur reçois la requête UDP il puisse établir une connections TCP avec le client évidement le client a un listenerTCP en route le problème c'est que lorsque je fais tourner les deux app sur la même machine j'ai l'erreur "Une seule utilisation de chaque adresse de socket (protocole/adresse réseau/port) est habituellement autorisée" bizarrement le serveur reçoit l'adresse passerelle (interne pas celle du net) les deux app sur des ordinateurs sur le net j'ai l'erreur "L'adresse demandée n'est pas valide dans son contexte" bizarrement le serveur reçoit l'adresse de la passerelle (mais celle du net)
__________________
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 !!!! |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Architecte serveur Inscription : septembre 2011 Messages : 49 ![]() |
Didiou, tu fais tout à l'envers ! (si je peux me permettre)
Tu es en train de faire en sorte que le serveur se connecte au client, ie. tu inverses la logique client serveur. Déjà, tu vas te faire jeter par le moindre firewall/NAT, parce que tu tentes une connexion qui est assimilée à une tentative de hacking par majorité des équipements réseau. Il faut que ce soient tes clients qui créent la connexion directement en TCP. Ou éventuellement, qu'ils créent la connexion UDP, puis la connexion TCP (je sais pas pourquoi tu as besoin de passer par l'UDP avant le TCP). Honnêtement, pour moi, y a un moment où tu as une erreur de logique dans ton design qui t'amène à faire ce choix qui me paraît hasardeux. A part les cas de NAT punchthrough, j'ai du mal à imaginer une situation où tu as besoin de faire ça. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com