PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Problemas com Compoentes INDY, como resolvo... #264902

11/01/2005

0

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

Responder

Posts

11/01/2005

Luciano_f

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;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar