Jak na serveru poznat, ze spadl klient?
Miroslav Prymek
prymek na tiscali.cz
Středa Březen 26 16:10:32 CET 2003
Velmi se omlouvam, ale psal jsem o necem, co jsem nemel dostatecne
otestovane.
> Mam pocit, ze stejny problem je dokonce i pri koreknim zavreni socketu
> (ale jeste jsem to dukladne netestoval).
>
> SITUACE: Server prijme pozadavek, odpovi na nej a ceka dalsi (od stejneho
> klienta).
> Jelikoz socket je nastaven jako blokujici, thread je uspan (nejsou data).
> Jestlize
> klient v teto "dobe uspaneho serveru" socket zavre, server kliedne spi dal.
> (ocekaval bych, ze dostane nejaky signal - nejspis SIGPIPE, nebo vrati
> EPIPE)
Jakmile se klient odpoji, read na serveru vrati 0, coz podle man znamena
EOF. Nevsiml jsem si toho, protoze read byl ve smycce, ze ktere mohl
vypadnout jen po chybe (navratova hodnota zaporna).
Je logicky, ze blokujici varianta nemuze precist 0b dat.
Omlouvam se, ze jsem zpusobil zmatek.
MP
Další informace o konferenci Linux