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 655 korisnika na forumu :: 93 registrovanih, 11 sakrivenih i 551 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 33 bren, _Rade, Abebe Bikila, aleph_one, amaterSRB, aramis s, Avalon015, BaneM75, Betty25, Black Luster Soldier, bojank, Boris.A, BORUTUS, cole77, curiosity, cvrle312, d.arsenal321, dekan.m, Dekanovic, del boy, Despot Đurađ, dj.ape, djile1, Dorcolac, draganca, dushan, Georgius, Gitzherai, Glavonja049, gobrad, ikan, In_hero, Ivica1102, Jan, jarovitt, JimmyNapoli, JK, Jose, Jozo74, K a s p e r, kaput21, kenny74, Krajišnik97, kybonacci, Leteća Krofna, littlebunny, LUDI, maksi007, marre, marsi, Mazo, mean_machine, Medojed, mercedesamg, miki69, milos.cbr, mishkooo, mkukoleca, nebkv, Nemanja.M, neutrino, omen, Papadubi, pein, Permaldar, proka89, Pururin, S-lash, Sale0501, sasovsky, savaskytec, sevenino, shaja1, Singidunumac, slowhand, SOVO515, Stanislav1970, StankoVrankovic, stegonosa, Tas011, uruk, vathra, VBoss, VJ, Vlado82, voja64, Zastava, zax22r, zeka013, Zukov, |_MeD_|, Žrnov, 223223