Problemas com Compoentes INDY, como resolvo...

Delphi

11/01/2005

Olá colegas eu estou querendo transmitir dados por Stream pelo componente IdTCPClient mais vejo que não consigo, fazendo alguns teste vi que esse componente não transmite Stream apenas lé será que tem outra forma
veja o codigo:

with IdTCPClient1 do begin
if connected then DisConnect;
Host := Trim(Receivers.Text);
Port := strtoint(Edit2.text);
Connect;
fStream := TmemoryStream.Create;
fStream.LoadFromFile(Arquivo);
OpenWriteBuffer;
WriteFile(Arquivo, false); // 1 dessas duas formas não funciona WriteStream(fStream); // 2
CloseWriteBuffer;
FreeAndNil(fStream);
disconnect;
end;

usando o evento OnExecute do servidor dá certo mais não posso usar oo servidor pois tenho que transmitir pelos clientes

procedure TForm1.IdTCPServerExecute(AThread: TIdPeerThread);
var
fTmpStream, ffStream: TMemoryStream;
begin
ffStream := TmemoryStream.Create;
ffStream.LoadFromFile(Arquivo);
AThread.Connection.OpenWriteBuffer;
AThread.Connection.WriteStream(ffStream); // funciona
AThread.Connection.WriteFile(Arquivo, false); // funciona
AThread.Connection.CloseWriteBuffer;

ffStream.Free;
AThread.Connection.Disconnect;
end;

Como resolvo isso..


Luciano_f

Luciano_f

Curtidas 0

Respostas

Luciano_f

Luciano_f

11/01/2005

Codigo meio confuso, apenas uma correção
usei os dois metodos e não dá certo nos clientes apenas dá certo nos servidores.

WriteFile(Arquivo, false);
WriteStream(fStream);



with IdTCPClient1 do begin
if connected then DisConnect;
Host := Trim(Receivers.Text);
Port := strtoint(Edit2.text);
Connect;
fStream := TmemoryStream.Create;
fStream.LoadFromFile(Arquivo);
OpenWriteBuffer;
WriteFile(Arquivo, false);
WriteStream(fStream);
CloseWriteBuffer;
FreeAndNil(fStream);
disconnect;
end;


GOSTEI 0
POSTAR