Witam serdecznie, mam problem z gniazdami.
Mam serwer i klientów są połączeni przez router i problem iż serwer nie wykrywa rozłączeniu poprzez wyciągniecie kabla sieciowego z któregoś z klientów.
Próbuje ustalić usterkę poprzez funkcję niskopoziomowe i nie mogę nie wiem jak odczytać stan z gniazda nie używając funkcji recv i send. Bez pingowanie chce zmniejszyć ruch w sieci.

Mam pytanie jeszcze dotyczęce opcji gniazd SO_KEEPALIVE - ustawiam gniazda klientów na tą opcję, wiem że gniazda kumunikują się między sobą z określonym czasie, ale czy gniazda w jakiś sposób informują aplikację o braku połaczeni np. mam keepalive ustawionego na 5 sekund ale nie wiem jak odczytywać czy minął czas, czy tym się zajmuje same gniazdo, czy aplikacja.

  1. Jaka jest różnica między opcją LINGER a KEEPALIVE.

I gdzie mogę zanaleść specyfikację gniazd siciowych a dokładnie gwałtowne rozłączanie poprzez zrywanie kabli?