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