Entwickler-Ecke

Internet / Netzwerk - Verbindung trotz Router


GTA-Place - Mo 21.08.06 08:59
Titel: Verbindung trotz Router
Moderiert von user profile iconraziel: Abgetrennt von [url=http://www.delphi-forum.de/viewtopic.php?t=49000]hier[/url].

Frage: In euren News steht, ihr hättet das Router-Problem gelöst. Kannst du kurz erläutern wie?


LH_Freak - Mo 21.08.06 19:14

naja, in irgendeinem Forum hab ichs glaub ich auch erläutert... :?
egal, dann nochmal ;)
Also wir machen das so, dass jeder Client zu unserem MUH Server (n toller 800Mhz PC ;) reicht aber atm ^^) verbindet, und Nachrichten usw. über den gehen (die Gespräche wollen wir aber auf P2P umstellen). Der Server überwacht die Logins, leitet die IPs weiter usw.. Bis jetzt funktioniert nur der Filetransfer über P2P...Ach ja. Hab ich schon erwähnt, dass es jetzt schon Chaträume wie im IRC oder in Jabber gibt? ;)
Naja, wenn du noch fragen dazu hast, nur her damit ^^


GTA-Place - Mo 21.08.06 21:58

Und wie bekommt ihr die P2P-Verbindung trotz Router? Da such ich schon lange eine Lösung.


LH_Freak - Mo 21.08.06 22:03

Port 80 ;)
Skype macht das genauso, und das funktioniert ja bekanntlich bei so gut wie jedem PC mit/ohne Router :D


Narses - Mo 21.08.06 22:10

Moin!

Nennt sich UDP Hole Punching [http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt]. ;) Aber: es gibt keine Garantie dafür, dass das immer klappt! :shock: Eben nur "meistens"...

cu
Narses


GTA-Place - Sa 02.09.06 20:20

Kann es sein, dass ihr Indy 10 benutzt? Hab mal in die Knowlege-Base geguckt und da steht:
Zitat:
How do I use a TIdTCPClient with a HTTP Tunneling Proxy?

For Indy 8.0 and Indy 9.0

Both Indy 8.0 and Indy 9.0 do not support HTTP Tunneling proxies so you have to use Indy 10.

For Indy 10

1. Create an IOHandler such as TIdIOHandlerStack or SSL IOHandler and assign the
TCPClient.IOHandler property this.
2. Create a TIdCustomTransparentProxy object and assign it to the IOHandler's TransparentProxy
property.
3. Set the TIdCustomTransparentProxy properties as required.
4. If there is another proxy that the HTTP Tunneling Proxy itself needs to use, you have to use, set
the Chained Proxy to a TIdCustomTransparentProxy such as TIdSocksInfo for a SOCKS Proxy or
a TIdConnectThroughHttpProxy for another HTTP Tunneling Proxy

Wenn mich nicht alles täsucht, dann ist das doch genau das was ihr macht, nicht?

Da ich Indy 9 hab, kann das ja bei mir nicht klappen ^^.


LH_Freak - Fr 08.09.06 13:13

yopp ^^


GTA-Place - Fr 08.09.06 13:56

Bin zu blöd dafür :roll: Wie ist denn das dann? Das eine Programm hat diesen Tunnel-Dings und das andere? Ist da dann ein IdTCPServer? Wie wird das 'Signal' dort wieder in TCP umgewandelt?


GTA-Place - Mo 11.09.06 18:32

*push (the button)* :mrgreen:


GTA-Place - So 01.10.06 14:41

PuSh :-P


mkinzler - So 01.10.06 14:49

was für ein Router? Bietet der Port Forwarding ( Oft auch als Virtual Server genannt)?


GTA-Place - Mo 02.10.06 14:10

Es geht ja darum, wie man trotz Router mit interner Firewall (ohne irgendwelche Einstellungen zu ändern) auf einen anderen PC zugreifen kann. Laut LH_Freak macht Skype das über Port 80.


LH_Freak - Mo 02.10.06 14:28

user profile iconGTA-Place hat folgendes geschrieben:
Es geht ja darum, wie man trotz Router mit interner Firewall (ohne irgendwelche Einstellungen zu ändern) auf einen anderen PC zugreifen kann. Laut LH_Freak macht Skype das über Port 80.


naja, eigentlich laut Wikipedia:

wiki hat folgendes geschrieben:
Die Software zeichnet sich – im Gegensatz zu vielen vergleichbaren Programmen – dadurch aus, dass sie auch hinter den meisten Firewalls und NAT-Routern problemlos funktioniert, da für die Kommunikation unter anderem der TCP-Port 80 benutzt wird, der normalerweise für das Surfen im World Wide Web Verwendung findet und deshalb in fast allen Fällen freigeschaltet ist.


;)


F34r0fTh3D4rk - Mo 02.10.06 14:31

warum machen das dann net alle ?


Timosch - Mo 02.10.06 15:07

In der c't 17/06 steht auf Seite 142, dass Skype o.g. UDP Hole Punching verwendet.


tommie-lie - Mo 02.10.06 15:16

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
warum machen das dann net alle ?
Weil es nicht funktioniert. Der zitierte Abschnitt aus dem Wikipedia-Artikel ist kompletter Unsinn und kann nicht von jemandem stammen, der weiß, was ein Router ist. Auf der Diskussionsseite hat das ebenfalls jemand angemerkt.


evilsoft.de - Mo 02.10.06 15:47

user profile icontommie-lie hat folgendes geschrieben:
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
warum machen das dann net alle ?
Weil es nicht funktioniert. Der zitierte Abschnitt aus dem Wikipedia-Artikel ist kompletter Unsinn und kann nicht von jemandem stammen, der weiß, was ein Router ist. Auf der Diskussionsseite hat das ebenfalls jemand angemerkt.


Richtig!

user profile iconGTA-Place hat folgendes geschrieben:
Und wie bekommt ihr die P2P-Verbindung trotz Router? Da such ich schon lange eine Lösung.


user profile iconLH_Freak hat folgendes geschrieben:
Port 80 ;)
Skype macht das genauso, und das funktioniert ja bekanntlich bei so gut wie jedem PC mit/ohne Router :D


aha, könntest du vll die Knackpunkte des Codes für uns posten? Damit würdest du eine menge Leuten hier helfen, nach soetwas suche ich auch schon etwas länger ;).


tommie-lie - Mo 02.10.06 20:29

user profile iconevilsoft.de hat folgendes geschrieben:
Damit würdest du eine menge Leuten hier helfen, nach soetwas suche ich auch schon etwas länger ;).
Suche bei Google STUN!


GTA-Place - Mo 02.10.06 22:07

Das klingt schonmal gut. Thx!

Zitat:
If both clients are behind NATs, Skype uses STUN-like NAT traversal [25, 10] to establish the direct connection.

Kennt jemand ein Open-Source StUN-Protokoll für Delphi oder andere Sprache (dann übersetz ich es halt in Delphi).


EDIT: Scheint es für Delphi [noch] nicht zu geben. Ich guck mir mal den C++-Source von SF.net an.


LexXis - So 12.10.08 10:28

So, dann grab ich den Thread nach 2 Jahren mal wieder aus :wave:

Hab mich ein wenig umgesehen und lass euch an dem Ergebnis teilhaben, falls doch mal wer STUN brauchen könnte.
Bei SourceForge hab ich eine recht einfach zu handelnde Komponente namens dstun [http://sourceforge.net/projects/dstun/] gefunden. Sollte dank Demoanwendung selbsterklärend sein.

Sicherheitshalber möchte ich noch anmerken, dass es keine Garantie dafür gibt, dass stun mit jedem Suche bei Google STUN-SERVER, geschweige denn überhaupt funktioniert :!:


GTA-Place - So 12.10.08 13:31

Nur STUN bringt leider nicht viel. Hab ja selbst mal das Protokoll umgesetzt. Nötig ist noch SIP / ICE / TURN.