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 993 korisnika na forumu :: 35 registrovanih, 4 sakrivenih i 954 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: A.R.Chafee.Jr., Belac91, bigfoot, bobomicek, Bubimir, darkangel, Darkoniii_94, Dežurni pod palubom, Dimitrije Paunovic, galerija, Georgius, ILGromovnik, ivan1973, Još malo pa deda, Lieutenant, maiden6657, Metanoja, milenko crazy north, MiroslavD, mnn2, moldway, Neutral-M, Nikola70, ozzy, pein, powSrb, Profica, repac, Shinobi, sosko, Srle993, Tvrtko I, vathra, virked, W123