Отслеживание разрыва сокета

_Vasilisk_
Дата: 06.09.2019 13:29:29
Есть асинхронный клиентский сокет
WSAEventSelect(ASocket, AEvent, FD_READ or FD_WRITE or FD_CLOSE)

Есть какой нибудь способ отлавливать внештатный разрыв сокета (кабель выдернули), кроме периодической отправки пакетов?

Цель - отображать статус сокета в интерфейсе пользователя


С уважением, Vasilisk
Dimitry Sibiryakov
Дата: 06.09.2019 13:34:41

_Vasilisk_
Есть какой нибудь способ отлавливать внештатный разрыв сокета (кабель выдернули), кроме
периодической отправки пакетов?

Нет. Можно этими пакетами сделать штатных keep alive watchdog-ов.

Posted via ActualForum NNTP Server 1.5

_Vasilisk_
Дата: 06.09.2019 13:49:16
Dimitry Sibiryakov
Нет.
Спасибо
makhaon
Дата: 06.09.2019 14:40:45
_Vasilisk_,

по keep alive можно дополнительно почитать:
https://stackoverflow.com/questions/1480236/does-a-tcp-socket-connection-have-a-keep-alive/
_Vasilisk_
Дата: 06.09.2019 14:51:43
makhaon
по keep alive можно дополнительно почитать:
Да знаю я про keep-alive
vavan
Дата: 06.09.2019 17:00:41
_Vasilisk_, FD_CLOSE к сожалению не всегда ловится, хотя и бывает
Dimitry Sibiryakov
Дата: 06.09.2019 17:22:06

vavan
FD_CLOSE к сожалению не всегда ловится

Точнее он никогда не ловится по разрыву физического канала. Это результат прихода пакета
RST или FIN.

Posted via ActualForum NNTP Server 1.5

Gator
Дата: 06.09.2019 17:39:06
К сожалению, кроме DSR/DTR и RTS/CTS ничего не придумали от пьяного тракториста
vavan
Дата: 06.09.2019 18:39:41
Dimitry Sibiryakov
он никогда не ловится по разрыву физического канала
получать случалось и при разрывах, правда сложно сказать что там именно влекло его возникновение. в любом случае закладываться на это не приходиться