Witam mam problem jak na niskim poziomie wykryć rozłączenie gniazda, chodzi mi dokładnie jak wyciągnie się kabel łączący serwer z klientem nie mogę wykryć rozłączenia?
Odczyt/zapis do socketu powinien zakończyć się niepowodzeniem.
Ale mój serwer będzie generował bardzo mały przepyw danych ale za to ma pracowac 24 H, a klienci zdarzenie bedą wysyłać około z odstępem 2-4 H, mam ustawion keepalive ale potrzebuje jeszcze soć innego, a nie chce wysyłać pakietów kontrolnych
inaczej się nie da - specyfikacja nie przewiduje informowania o rozłączeniu się drugiej strony, niestety. No ewentualnie możesz monitorować czy kabel sieciowy nie jest odłączony ale to nie rozwiązuje problemu z resetem końcówki np.
Jak to nie a opcja keepalive, gniazda przesyłają do siebie informacje o połączeniu, a ponadto po uszkodzeniu gniazd w systemie windows po komendzie netstat -b możemy zaobserwować status gniazda OCZEKIWANIE_FIN, szukam funkcji z których mogę wyciągnąć takie informacje