Guten Abend,
ich versuche tcp hole punching anzuwenden.
Soweit ich nachvollzogen habe existieren jeweils drei Komponenten:
Server, Peer 1 und Peer 2.
Peer 1 und Peer 2 verbinden zum Server und teilen diesen ihre private und öffentliche Endpunkte mit.
Wenn nun ein Peer sich mit einem anderen verbinden möchte sendet der Server die öffentliche IP-Adresse samt Port des jeweils anderen Peers an den anfordernden Peer.
Simultan sendet der Server die öffentliche IP-Adresse samt Port des anfordernden Peers an den anderen.
Im Peer lauscht während-dessen ein Socket an dem Port, an dem es sich mit dem Server verband.
Im Hintergrund läuft ein Thread das periodisch versucht die Peers zu punch-holen.
Wenn dann ein ankommende Anfrage akzeptiert wurde besteht eine Verbindung.
Alles sehr logisch; nun meine Frage:
Wieso funktioniert das erst nach mehreren Versuchen?
Danke.
ich versuche tcp hole punching anzuwenden.
Soweit ich nachvollzogen habe existieren jeweils drei Komponenten:
Server, Peer 1 und Peer 2.
Peer 1 und Peer 2 verbinden zum Server und teilen diesen ihre private und öffentliche Endpunkte mit.
Wenn nun ein Peer sich mit einem anderen verbinden möchte sendet der Server die öffentliche IP-Adresse samt Port des jeweils anderen Peers an den anfordernden Peer.
Simultan sendet der Server die öffentliche IP-Adresse samt Port des anfordernden Peers an den anderen.
Im Peer lauscht während-dessen ein Socket an dem Port, an dem es sich mit dem Server verband.
Im Hintergrund läuft ein Thread das periodisch versucht die Peers zu punch-holen.
Wenn dann ein ankommende Anfrage akzeptiert wurde besteht eine Verbindung.
Alles sehr logisch; nun meine Frage:
Wieso funktioniert das erst nach mehreren Versuchen?
Danke.
Und Gott alleine weiß alles am allerbesten und besser.