select

Pavel West pavel.west na idp.cz
Úterý Leden 30 11:37:52 CET 2001


Dobry den,

Vytvarim program, ktery bude komunikovat pomoci socketu s vice clienty
a pomoci volani select se snazim zjistit ktery deskriptor je pripraven
pro zapis. Pokud provedu volani select ve smycce, tak program ceka (
select blokuje proces ) jen 
na prvni moznost zapisu do socketu, dalsi volani selectu je uz
neblokujici
ale pokud by se ten klient odmlcel a trvalo by mu dele nez muze cist
dalsi data, program by uviznul ve volani write a pokud by tam byl dalsi
klient pripraveny pri prijem dat zrejmen by se na nej uz nedostalo (
lepe receno, teprve az po ukonceni write na prvniho klienta ). 
Vim ze by se to dalo obejit pomoci implementace konkurentniho serveru,
tj. pokazde udelat fork a obsluhovat klienty v jinem nezavislem procesu,
ale ja bych to chtel jako iterativni server. Jde to vubec ?
Ted me napada ze ten select pro socket ceka jen na vytvoreni spojeni z
druhe strany, a potom uz povazuje socket za schopny provozu a proto
odblokuje ten proces pro zapis,ze ?


Pavel


Další informace o konferenci Linux