Castecny zapis do socketu
Jan 'yanek' Bortl
yanek na ya.bofh.cz
Pátek Květen 2 00:29:29 CEST 2008
Jan Kasprzak wrote:
> Jan 'yanek' Bortl wrote:
> : Jan Kasprzak wrote:
> : >
> : > Cili zajima me, jak to ze kdyz mi poll()/epoll() rekne ze deskriptor
> : > je pripraveny k zapisu, tak ve skutecnosti se zapis zablokuje? A co mam
> : > delat pro to, aby se nezablokoval?
> :
> : Strelba od boku: jsou zminene descriptory otevreny jako O_NONBLOCK?
> :
> Nejsou. Zapomnel jsem napsat - kdyz dam O_NONBLOCK (nebo treba
> alarm(2)) tak se provede castecny zapis. Ale nevedel jsem, ze by
> !O_NONBLOCK implikovalo ze se vzdy delaji plne zapisy a ceka se na ne.
> Mel jsem za to, ze pokud poll() nebo select() vrati pripravenost k zapisu,
> tak to znamena, ze write() zapise aspon neco a pak skonci.
Ja mam zase za to, ze se tak deje pokud se nestane neco fatalniho.
> Jeste je teda moznost hrat si s nejakym
> setsockopt(fd, SOL_SOCKET, SO_SNDBUF) nebo SO_SNDLOWAT nebo neco takoveho.
<fuj>Anebo tam cpat data po jednom bajtu :-)</fuj>
Kdyz jsme tedy u toho, jakym zpusobem zjistit jak velky a kolik mista je v
output bufferu urciteho descriptoru? write() nebo nekdo pod nim to
predpokladam nejak vi.
P.S. Kdo vymyslel 25minutovy greylist na relay.muni ?!
--
Jan 'yanek' Bortl <yanek [at] ya.bofh. cz>
http://ya.bofh.cz/ | jab: yanek [at] mitranet. cz
-----------------------------------------------------------------
"Maybe one day you will learn that your way is not the only way."
Opher [StarGate: The Nox]
Další informace o konferenci Linux