Enan0
02-12-2004, 16:25:43
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...
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..
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...
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..