AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Proxy Server erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Proxy Server erstellen

Offene Frage von "dominikkv"
Ein Thema von dominikkv · begonnen am 30. Sep 2006 · letzter Beitrag vom 1. Okt 2006
Antwort Antwort
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#1

Proxy Server erstellen

  Alt 30. Sep 2006, 20:27
hi
ich bin grad dabei mir delphi selber beizubringen und bin grad an meinem ersten "richtigen" programm
dieses programm soll den quellcode aus einer Internet-seite die in meinem FireFox oder Opera aufgerufen ist auswerten. um an den quellcode ranzukommen hab ich mir gedacht ich erstelle ein proxy-server, mein browser ruft die seiten über den proxy auf und ich kann den quelltext rauslesen.

nun leider hab ich keine ahnung wie ich das it dem proxy anstellen soll

ich habe Turbo Delphi 2006.
ich denke indy wird bei dem proxy eine rolle spielen, ich hab auch bei der installation von Turbo Delphi angegeben das er Indy 10 verwenden soll, allerdings gibt es keine Objekte von Indy die ich auf die Form plazieren kann...oder verwendet man indy anders und man brauch keine objekte auf der form?

ich bin für jeden vorschlag wie ich ich ein proxy erstellen kann dankbar
mfg.dominik
Dominik
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#2

Re: Proxy Server erstellen

  Alt 1. Okt 2006, 07:08
hi,

es kommt anscheinend immer drauf an, wie viel man selbst machen will und wieviel man auf die Arbeit anderer zurückgreifen möchte. Jeder hat da sein bevorzugtes Niveau, das sich auch mit der Zeit verändern kann. Ich persönlich vermeide vorgefertigte Dinge wie die indies.

Meinen proxy hab ich mit tserversocket und tclientsockets geschrieben. Angefangen habe ich so, dass ich den Proxyserverteil auf port 80 lauschen lassen hab und mir angesehen hab, wie die requests aussehen, wenn ich im Browser den proxy 127.0.0.1:80 einstelle. Dann habe ich für jede proxyserverconnection ein clientsocket erstellt und die requests hinaus und responses herein weiter geleitet. Der Nächste Schritt war, nicht nur den Verbindungsaufbau, sondern auch den Verbindungsabbau zu managen.

Inzwischen kann ich recht komplexe Seiten wie http://derstandard.at/ über local Proxy fehlerfrei ansehen. Fertig ist das Ding aber noch lange nicht.

Wichtig ist vor allem, das das Geschehen im Programm detailliert und übersichtlich protokolliert wird. Das mache ich auf einem Memo. So erkennst du dann die Fälle, die das Programm noch nicht beherrscht, und kannst die nötigen Massnahmen treffen. Einer dr Vorteile davon, auf socket Basis zu arbeiten ist, dass man das Handling neuer Sonderfälle jederzeit selbst nachrüsten kann. Man ist nicht auf die Entwicklerarbeit anderer angewiesen, und braucht sich nicht in die Programme anderer einarbeiten.

viel spass mit deinem Vorhaben,
der Flossinger
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Proxy Server erstellen

  Alt 1. Okt 2006, 09:04


hi
danke für deine antwort.
hört sich ja schon mal gut an.
leider hab ich nicht so viel ahnung wie das mit dem einstellen und weiterleiten etc geht
ein tserversocket und tclientsocket hab ich zwar nicht gefunden dafür ein ttcpserver und ttcpclient.
ist das das gleiche?

und...wozu brauch ich den client?
ist es nicht so das der browser eine seite an meinen server anfordert, dieser sich die seite aus dem inet holt und dan dem browser weitergibg?

naja und dann noch...wie lass ich meinen server "lauschen" (wie du unten beschrieben hast)?

mfg.dominik
Dominik
  Mit Zitat antworten Zitat
flossinger

Registriert seit: 22. Aug 2005
Ort: südlich der Alpen
109 Beiträge
 
Delphi 5 Standard
 
#4

Re: Proxy Server erstellen

  Alt 1. Okt 2006, 13:05
Hallo Dominik,

ein Proxy ist eine recht kompexe Angelegenheit. Nachdem deine Fragen mehr auf die Grundlagen abzielen, solltetst du dir vielleicht überlegen, ob du nicht vorher ein paar einfachere Projekte erstellst. Teletypechat, Downloader oder http Fileserver wären ein guter Einstieg in die Materie.

ttcpserver und -client kenne ich nicht. Kann dir daher nicht sagen, ob die ähnlich zu programmieren sind wie tserversocket und tclientsocket.

Der serverteil des proxy kann sich KEINE Seite aus dem Internet holen. Der Serverteil kann nur auf der Verbindung antworten, die der Browser aufgenommen hat, um die Seite anzufordern. Im Proxy Programm muss zu dieser Verbindung ein client socket erstellt werden. Da drüber wird zum HTTP server im Internet eine Verbindung aufgebaut und die Seite angefordert. Der http server antwortet, der clientsocket empfängt, die Antwort wird dem Serverteil des proxy übergeben und auf der ursprünglichen Connection wird sie dem Browser geschickt, der ja dort immer noch auf die Antwort wartet.

Als nächstes kommt der Browser drauf, dass da duzende Grafiken auf der Webseite eingebettet sind und er schickt gleich ein paar Anforderungen parallel raus. Die Grafiken liegen auf dem selben host wie der html text der Seite oder auch nicht. Also bestehenn auf dem serverteil des proxy mehrere connections, für die jeweils clientsockets erstellt werden, um die Anforderungen weiter zu leiten. Die Anforderungen und Antwoten sollen natürlich parallel gehandhabt werden, damit der arme Betrachter am Browser nicht zu lange auf die Seitendarstellung warten muss.

Der Server lauscht, wenn du seine Portnummer definierst und ihn aktivierst.

serversocket1.Port:=80;
serversocket1.Open;

grüsse,
der flossinger
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Proxy Server erstellen

  Alt 1. Okt 2006, 13:49
aha -.-

ich hab mir jetzt borland developer studio 2006 runtergeladen und da kann ich jetzt indy benutzen...ich glaub ich machs mit indy.

hab TIdHTTPProxyServer auf Form1 plaziert und im FF den proxy eingetragen und siehe da... klappt auf anhieb.

allerdings hab ich ein neues problem ...
hier mal der quelltext:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer,
  IdCmdTCPServer, IdHTTPProxyServer;

type
  TForm1 = class(TForm)
    IdHTTPProxyServer1: TIdHTTPProxyServer;
    procedure IdHTTPProxyServer1Connect(AContext: TIdContext);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.IdHTTPProxyServer1Connect(AContext: TIdContext);
begin
 showmessage ('connected')
end;

end.
Fehlermeldung:

Zitat:
[Pascal Fehler] Unit1.pas(13): E2003 Undefinierter Bezeichner: 'TIdContext'
Dominik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Proxy Server erstellen

  Alt 1. Okt 2006, 13:51
Erweitere die uses mal um IdContext
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz