Simple Proxy server

0

Postanowiłem napisać prosty server proxy. Poszło prosto i szybko ale nie działa ;-P
Schematycznie jego praca ma wyglądać tak:
Klient (np. przeglądarka) -> MÓJ PROXY -> Server docelowy.
Oto moje wypociny

procedure TForm1.ProxyClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
  i,Lng: Integer;
  Buffer: array[0..1024] of char;
begin
  Lng := Socket.ReceiveLength;
  Socket.ReceiveBuf(Buffer, Lng);
  ProxyServer.Socket.SendBuf(Buffer,Lng);
end;
procedure TForm1.ProxyServerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var
  i,Lng: Integer;
  Buffer: array[0..1024] of Char;
begin
  Lng := Socket.ReceiveLength;
  Socket.ReceiveBuf(Buffer,Lng);
  ProxyClient.Socket.SendBuf(Buffer, Lng);
end;
procedure TForm1.ProxyServerAccept(Sender: TObject; Socket: TCustomWinSocket);
begin
ProxyClient.Active:=True;
end;

Aby przetestowac go, włączyłem server na porcie 8904 i ustawiłem:
ProxyClient.Address=onet.pl
ProxyClient.Host=onet.pl
ProxyClient.Port=80

Wklepałem w przegladarce 'localhost:8904' ale nic się nie ładuje :|

0

Testując trochę odkryłem ze do mojego servera pakiet dochodzi. Problem moze lezec w tym czy wysyła się dalej lub czy server odpowiada (tylko dlaczego mialby nie odpowiadac :| ). Jakies pomysły ?

0
  1. Odbierasz żądanie HTTP
  2. Wyciągasz z niego host docelowy i lokalizację na serwerze
  3. Ew. wstawiasz informację o proxy
  4. Otwierasz gniazdo-klienta i przesyłasz przygotowane żądanie
  5. Odbierasz odpowiedź serwera i wysyłasz klientowi

1 użytkowników online, w tym zalogowanych: 0, gości: 1