Tezave s komunikacijo prek TCP/IP

Iztok Sitar iztok.sitar at siol.net
Mon Sep 10 11:17:41 CEST 2001


Zivjo!

Lotil sem se pisanja serverja, kjer komuniciram prek socketov. Do pred
kratkim sem bil preprican, da kar zapisem z write() na serverju preberem z
read() na klientu. Naletel sem namrec na situacijo, ko na klientu preberem
manj podatkov kot sem jih zapisal na serverju. Ostanek paketa dobim na
zacetku naslednjega paketa, ki ga je poslal server. S tem je drugi paket
neuporaben, ker na zcetku ne dobim glave paketa. En paket podatkov je
ponavadi velik od 5-32K, zmanjka pa od 200b-1,5K.

Z nastavitvijo TCP_NODELAY opcije sem sicer ta problem resil, vendar mi taka
resitev ni vsec. Poleg tega mislim, da sem s tem samo znizal prag pri
katerem se ta problem pojavi, ne pa odpravil.

Ali ima kdo kaksno idejo, kako bi se tega problema lotil. Ali bom moral sam
ugotavljati za vsak paket, ce sem res ze prebral vse.

Iztok




More information about the lugos-prog mailing list