Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Hole Punching (1 zu n) Verbindungen
Alphawolf1988
myCSharp.de - Member



Dabei seit:
Beiträge: 68

Themenstarter:

Hole Punching (1 zu n) Verbindungen

beantworten | zitieren | melden

Hallo liebe Community!

Habe eine Frage bzgl. Hole Punching. Für diesen Prozess initialisiere ich 2 UDPClient Klassen, gebe deren externe adresse UDP Port dem anderen bekannt und verbinde mich. Meine Frage wäre jetzt, ob man für jede Verbindung zu einem anderen Clienten wieder einen neuen Port belegen muss oder ob bisherige Verbindungen nutzbar sind (1 zu n Verbindung). Mein Problem ist, dass mein erster Ansatz ein Ping/Pong zu einem externen UDP Client war und danach das UDP Hole Punching zu einen anderen UDP Client probiert wurde, jedoch ohne Erfolg. Wurde dieser Ping vorher nicht unternommen geht es jedoch.

MFG Chris
Wer zuerst kommt malt zuerst, wer danach kommt malt drüber!
private Nachricht | Beiträge des Benutzers
Coder007
myCSharp.de - Member



Dabei seit:
Beiträge: 1.214

beantworten | zitieren | melden

Verbindung zu einem anderen Client = Verbindung zu einer anderen IP? Dann ist es automatisch eine andere Vebrindung und die kriegt auch einen anderen Source Port. Oder versteh ich deine Frage falsch?
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.170
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

grundsätzlich könnte es schon mit demselben Client/Port funktionieren. Ich kann mir aber auch vorstellen, dass es Probleme geben kann.
Insbesondere wird es vermutlich nicht gehen, ein UDP-Hole gleichzeitig für mehrere Clients offen zu halten. Der Trick ist ja, dass man ein UDP-Paket rausschickt, das zwar nicht angenommen wird, aber ein Dritter, der beide zu verbindende Clients kennt, dies dem Zielrechner mitteilt, so dass dieser dann antworten kann -> und nur von diesem Zielrechner wird dann eine Antwort akzeptiert. Wenn Du also ein Hole öffnest, wird das höchstens für den letzten angesprochenen Client offen sein.
Wiederholst Du für die zweite Verbindung wirklich den gesamten Hole-Punching Vorgang?

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
pdelvo
myCSharp.de - Member

Avatar #avatar-3354.png


Dabei seit:
Beiträge: 1.346

beantworten | zitieren | melden

Ob das funktioniert hängt von der NAT Einstellung des Routers ab. Aber wenn das Hole Punching an sich funktioniert sollte das dann auch für einen anderen Client funktionieren.
private Nachricht | Beiträge des Benutzers