DEV: Jak na serveru poznat, ze spadl klient?
Miroslav Prymek
prymek na tiscali.cz
Pondělí Březen 24 14:24:07 CET 2003
Dobry den,
mam aplikaci, ktera funguje jako server na protokolu TCP/IP. Tato
aplikace odpovida na dotazy klientu, *nikdy sama komunikaci nezacina*.
PROBLEM: Pokud klient spadne, nezavre socket, spojeni zustane vyset
a na serveru zbytecne zustane thread, ktery ceka na pozadavky od
klienta.
Jeste jsem to dukladne netestoval, ale obavam se, ze v takovem pripade
read na serveru nevraci EPIPE, ani nedojde k SIG_PIPE. Read zustane
proste dal cekat, az prijdou nejaka data z (preruseneho) spojeni...
(v tomhle se mozna mylim, kdyztak me opravte)
RESENI: me napadlo jedine - aby server periodicky posilal nejaka data
typu ACK, na ktera by klient musel odpovedet a ktera by tedy testovala
spojeni. Pro muj pripad se to ale z ruznych duvodu nehodi.
Prosim poradte (staci nastinit). Procitat si kvuli tomu zdrojaky
nejakych DOBRREAVYCHYTANENAPROGRAMOVANYCH serveru se mi nechce:)
dekuji
s pozdravem
Miroslav Prymek
Další informace o konferenci Linux