Problem u prenosu streama

Problem u prenosu streama

offline
  • Pridružio: 25 Mar 2006
  • Poruke: 67
  • Gde živiš: Doboj, Republika Srpska

Postovani,
Ima jedan problem.
Koristim indy za razmjenu podataka servera i klijenta.
Problem je sledeci:
Ne mogu da prenesem stream od servera prema klijentu.
Ususti treba da prenesem sadrzaj TMemo komponente sa servera i u drugu TMemo komponentu na klijentu.
Ja sam to uradio ovako ali ocito da nesto nevalja:

    Stream:=TMemoryStream.Create;     memKorisnici.Lines.SaveToStream(Stream);     Stream.Position:=0;     PStream.Korisnici:=TMemoryStream.Create();     PStream.Korisnici.LoadFromStream(Stream);     Stream.Free;     AThread.Connection.WriteBuffer(PStream,sizeof(PStream),true);

Pa bih vas molio da mi pomognete ili da mi napisete link sa primjerima program koji koriste indy TCP server i klijent



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

pa gladajuci u code, ne znam samo zasto koristis 2 streama?
Zar nije mogao odmah "stream" da se prenosi?
Ako jeste, drugi stream ti ne treba.
Greska je u SizeOf(neki stream)..

SizeOf(Stream) jeste 4 byte
Stream.Size jeste prava velicina

Ne svidja mi se linija PStream.Korisnici.LoadFromStream... to je vrlo ne pouzdano.

ja bih napravio ovako:

Stream:=TMemoryStream.Create; try   memKorisnici.Lines.SaveToStream(Stream);   Stream.Position:=0;   Athread.Connection.WriteBuffer(Stream,Stream.size,true); finally   Stream.free; end;


inace, kad iz jednog strima pravis drugi, korisiti:

RezultijuciStream.CopyFrom(UlazniStream, UlazniStream.size);
RezultijuciStream.Position := 0;
//ili jos bolje: RezultijuciStream.Seek(0,stFromBeginning)



offline
  • Pridružio: 25 Mar 2006
  • Poruke: 67
  • Gde živiš: Doboj, Republika Srpska

Hvala, isprobacu kod, jer mi se cini da mi vise odgovara nego kako sam ja rijesio problem:

      AThread.Connection.WriteInteger(Stream.Size);       AThread.Connection.OpenWriteBuffer();       AThread.Connection.WriteStream(Stream);       AThread.Connection.CloseWriteBuffer;

Ko je trenutno na forumu
 

Ukupno su 1019 korisnika na forumu :: 37 registrovanih, 6 sakrivenih i 976 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, 39mm, A.R.Chafee.Jr., aramis s, babaroga, Ben Roj, bladesu, Bubimir, DejanCG, dijica, draganca, FOX, Frunze, goxin, ivica976, jaeger, kuntalo, laurusri, Lieutenant, Lošmi, mercedesamg, Metanoja, Nikolaa11, NoOneEver Dreams, nuke92, Oscar, Panter, Sirius, Snorks, solic, Steeeefan, stegonosa, Trpe Grozni, tubular, Vlada78, yrraf, Žoržo