Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   idtcpserver + idtcpclient (proxy) (https://www.clubdelphi.com/foros/showthread.php?t=16579)

Enan0 02-12-2004 16:25:43

idtcpserver + idtcpclient (proxy)
 
Hola amigos bueno debido a que al idmappedport no le e podido entontrar la vuelta. estoy intentando hacerlos con sockets.
mi idea es hacer una especie de PROXY, que me valla leguendo el contenido del buffer. el tema es que con los componentes Internet (sockserver y client) lo puedo hacer. ante la escritura en un socket se lo paso al otro y viceversa. y esto funciona. solo que tengo un problema. cuando una pagina me pide multiples conexiones como suelen hacer para descargar imagenes. produce un error. aparte estos componentes hay veces que no registran el envento onwrite.. entonces se me dio por usar los de indy, y que manejan hilos.. y bueno hace unos dias que estoy trabado. porque no puedo pasar lo que recibe el sockserver al cliente (para qeu lo pase al router) y viceversa..

pego el codigo aver si alguien me ayuda...

Código:

Código Delphi [-]

 procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
 var
 algo:string;
 
 begin
    algo :=atHRead.Connection.CurrentReadBuffer;
    IF NOT IdTCPClient1.Connected THEN  IdTCPClient1.Connect;
    memo1.Lines.Add(algo);
    IdTCPClient1.WriteLn(algo);
 end;
 
 procedure TForm1.IdTCPClient1Connected(Sender: TObject);
 begin
    Memo1.Lines.Add('conectado con el server');
 end;
 
 procedure TForm1.IdTCPClient1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
 var
 algo:string;
 begin
 case  AWorkMode of
    wmread: begin
    algo:=(idtcpclient1.CurrentReadBuffer);
    memo1.Lines.Add(algo);
    end;
    wmWrite:begin
 
    end;
 end;
 end;
 
 procedure TForm1.IdTCPClient1WorkBegin(Sender: TObject;
  AWorkMode: TWorkMode; const AWorkCountMax: Integer);
 begin
 
 case AWorkMode of
    wmRead: begin
    MEMO1.Lines.ADD('RECIBO DESDE INTERNET');
    End;
    wmWrite:begin
    memo1.Lines.Add('ENVIO AL BROWSER');
    END;
 END;
 end;

PD: perdon si hay algun error grosero por es que he ido probando de todo y bueno... deje los nombres strandar de los componentes para que sea mas facil. gracias

GRacias..

Enan0 02-12-2004 16:28:54

aca esta solo lo que puedo recibir que es lo que contiene el Buffer del SERVER. en teste caso es la peticion de la pagina

192.168.0.20
conectado con el server
GET http://www.google.com.ar/ HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: es-ar
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: www.google.com.ar
Proxy-Connection: Keep-Alive


La franja horaria es GMT +2. Ahora son las 09:02:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi