[ itf @ 09.09.2011. 11:49 ] @
Mučim se već par dana da nekako sklepam slanje streamova između UDP klijenta i servera. Klijent šalje zahtjev prema serveru (nekakav ID string), ovaj bi mu trebao vratiti MemoryStream kojeg bi klijent trebao preuzeti.

S TCP protokolom nema problema no nužan mi je broadcast, pa ako itko ima kakav primjer kako da pomoću UDP-a razmjenjujem streamove bio bih zahavalan. Koristim Indy 10.5.8.
[ savkic @ 09.09.2011. 13:25 ] @
> S TCP protokolom nema problema no nužan mi je broadcast, pa ako itko ima kakav primjer kako da pomoću UDP-a razmjenjujem streamove bio bih zahavalan. Koristim Indy

Trebalo bi da radi sa SendBuffer, s tim sto neces moci direktno da koristis TMemoryStream vec ces morati da sadrzaj pretvoris u TIdBytes tj. array of Bytes.
[ itf @ 09.09.2011. 13:38 ] @
Sve sam to pokušao (u serveru preko RowToBytes pretvorim stream u bajtove i šaljem klijentu) no pri preuzimanju bajtova na klijent strani sve se smrzne...

[ savkic @ 09.09.2011. 22:26 ] @
> Sve sam to pokušao (u serveru preko RowToBytes pretvorim stream u bajtove i šaljem klijentu) no pri preuzimanju bajtova na klijent strani sve se smrzne...

Onda mozda ta verzija Indija ima bug, probaj sa slanjem par bajtova i kako stize.
[ itf @ 10.09.2011. 09:54 ] @
Slanje i primanje nekakve custom strukture podataka radi, ali ovo ne. Mislim da je problem što streamovi nisu nikad fiksne duljine.. To je jedina razlika između slučajeva gdje prijenos radi i ne radi.

Edit: Našao sam objašnjenje na službenom forumu:

"Indy's UDP components do not support reading or writing streams, mainly
because UDP has restrictions on data size that TCP does not. You will have
to chunk your stream data manually, sending each chunk individually. "

I još kad se uzme u obzir nepouzdanost UDP-a cijela stvar pada u vodu.

[Ovu poruku je menjao itf dana 10.09.2011. u 22:33 GMT+1]
[ salaczr @ 12.09.2011. 07:35 ] @
Mozda ti ovo pomogne

http://docs.embarcadero.com/pr...Sockets_TUdpSocket_OnSend.html

poz
[ itf @ 13.09.2011. 13:13 ] @
Zanimljivo. A zbog Indy sam prethodno otpisao UDPSocket.. Hvala