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! 😁
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?
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
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.