Entwickler-Ecke
Internet / Netzwerk - Proxy Unterstützung bei TClientSocket
jf_stgt - Do 24.08.06 10:20
Titel: Proxy Unterstützung bei TClientSocket
Hallo zusammen,
also ich habe ein altes Projekt mit Delphi 5 und der (beigefügten) TClientSocket Komponente. Das Programm baut vom Kundenrechner eine Verbindung zu einem zentralen Firmenserver (im Internet) auf. Der Server selbst ist nicht von mir.
Manche Kunden gehen allerdings über einen Proxy (z.B. AVM KEN) ins Netz.
Nun wird bei manchen Kunden der Wunsch laut dass mein Programm die Informationen zum Proxy aus dem InternetExporer ausliest und die Einstellungen verwendet.
Das Auslesen ist nicht(!) das Thema hier (habe ich bereits an anderer Stelle im Forum gelesen).
Mein Frage: Gibt es eine Möglichkeit die TClientSocket Komponenten weiter zu benutzen?
Sonst müsste ich das ganze Programm umstricken. Die Indy Kompos habe ich mir angeschaut aber da muss ich dann viel umbauen und das ist aufwändig.
Gibt es vielleicht irgendwie (über Zusatzkomponenten im Programm etc.) die Möglichkeit die Proxy-Server Ansteuerung in meinem Programm zu benutzen und TClientSocket weiter zu verwenden?
Vielleicht könnte man auch eine Kompo von TClientSocket ableiten und dort die Möglichkeiten implementieren? Aber ich habe keine Ahnung wie...
Danke für Eure Rückmeldungen!
Gruß
Jürgen
jf_stgt - Fr 25.08.06 16:20
Hat keiner eine Idee oder habe ich mich vielleicht nicht so deutlich ausgedrückt?!
Gruß
Jürgen
BenBE - Fr 25.08.06 17:05
Je nach dem, was der Proxy-Server zulässt, gibt's zwei Möglichkeiten:
1. Tunneln über HTTP:
Quelltext
1:
| CONNECT zielserver:port |
(Die Leerzeile ist wichtig)
Allerdings lassen dies nicht alle Proxyserver zu.
oder
2. Tunneln über Socks:
Hierzu müsstest Du aber direkt in die Spezifikation für SOCKS4\5 reinschauen, da dies etwas aufwändiger ist ...
jf_stgt - Fr 25.08.06 17:39
BenBE hat folgendes geschrieben: |
Je nach dem, was der Proxy-Server zulässt, gibt's zwei Möglichkeiten:
1. Tunneln über HTTP:
Quelltext 1:
| CONNECT zielserver:port | (Die Leerzeile ist wichtig)
Allerdings lassen dies nicht alle Proxyserver zu.
oder
... |
Hallo!
Danke erstmal. Soweit ich weiß, lässt wohl der KEN Server so ein CONNECT Tunneling zu.
Wo muss ich das CONNECT zielserver:port denn hinsenden?
Ich versuche ja mittels TClientSocket eine Verbindung aufzubauen was ja schon nicht funktioniert?!
Oder muss ich eine Verbindung zum Proxy-Server aufbauen und nicht versuchen auf meinen Server zu kontaktieren?
Gruß
Jürgen
BenBE - Fr 25.08.06 21:15
Den HTTP-CONNECT-Request sendest Du einfach auf den HTT-Proxy-Port des Servers. Dieser stellt dann die eigentliche Verbindung zum Zielhost her und Antwortet selber noch mit einer kleinen Ausgabe (die auch mit einer Leerzeile abgeschlossen ist). Alles was danach gesendet oder empfangen wird, wird nur zwischen Sender (deinem Programm) und dem Empfänger (dem Zielserver) übertragen.
Schau ggf. einfach noch einmal in
RFC 2616 [
http://www.ietf.org/rfc/rfc2616.txt?number=2616] nach (Abschnitt 9.9, Seite 57).
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!