Entwickler-Ecke

Internet / Netzwerk - Client/Client-Verbindung


byoean - Mo 29.01.07 15:34
Titel: Client/Client-Verbindung
Guten Tag,
ist es möglich Daten unter PC´s auszutauschen, ohne einen zentralen Server zu benutzen? Bei Skype ist es doch der Fall, dass die Daten direkt zum Gesprächspartner gesendet werden. Einer der PC´s hat dann sicherlich einen Server lokal laufen. Aber wie kommt es das dieser Server dann hinter dem Router erreichbar ist?


Amiga-Fan - Mo 29.01.07 16:09

hat skype nicht eine besondere technik, um die Firewall zu umgehen? In der c't gab es irgendwann einen Artikel dazu.


Narses - Mo 29.01.07 16:13

Moin!

user profile iconbyoean hat folgendes geschrieben:
ist es möglich Daten unter PC´s auszutauschen, ohne einen zentralen Server zu benutzen?

Grundsätzlich: ja. ;) Ist aber manchmal nicht soo einfach... :zwinker:

user profile iconbyoean hat folgendes geschrieben:
Bei Skype ist es doch der Fall, dass die Daten direkt zum Gesprächspartner gesendet werden. Einer der PC´s hat dann sicherlich einen Server lokal laufen. Aber wie kommt es das dieser Server dann hinter dem Router erreichbar ist?

AFAIK macht Skype Suche in: Delphi-Forum, Delphi-Library UDP HOLE PUNCHING. Das klappt aber nur, weil die einen öffentlichen Webserver haben und es klappt bei manchen Routern/Configs der Router trotzdem nicht. :?

cu
Narses


byoean - Di 30.01.07 09:06

Ok, danke schonmal! Das mit diesem UDP hole punching scheint eine interessante Sache zu sein. Hier im Forum bin ich auch auf das Stichwort "STUN" http://de.wikipedia.org/wiki/STUN gestoßen. Ich würde sehr gerne mehr darüber erfahren, und mich interessiert es sehr, wie man soetwas z.b. mit Indy Komponenten realisieren kann. Habe ich es richtig verstanden, dass da wohl viel mehr hintersteckt, als nur für den Server den Port 80 zu benutzen?? Ist diese ganze Geschichte auch mit einem FTP Server realisierbar, oder begrenzt sich das auf ein Udp/Tcp Protokoll?


byoean - Do 01.02.07 12:10
Titel: gegooglet
So,ich habe jetzt nocheinmal gegppgelt und folgendes gefunden

Zitat:

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.



For TIdFTP in Indy 10



You have to set the Passive property to true (PASV) to work with a HTTP Tunneling Proxy because standard FTP PORT transfers will not work in this configuration. You should allow the user to be able to choose between using PORT transfers (TIdFTP.Passive := False) and using PASV transfers (TIdFTP.Passive := True).


Kann mir dazu jemand noch mehr erklären. Bzw mir das mal erläutern. Hätte gerne noch ein wenig mehr Wissen darüber!

Vielen Dank! =)