Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Отслеживание разрыва сокета  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11154
Есть асинхронный клиентский сокет
WSAEventSelect(ASocket, AEvent, FD_READ or FD_WRITE or FD_CLOSE)

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

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


С уважением, Vasilisk
6 сен 19, 13:29    [21965325]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48141

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

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

Posted via ActualForum NNTP Server 1.5

6 сен 19, 13:34    [21965329]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11154
Dimitry Sibiryakov
Нет.
Спасибо
6 сен 19, 13:49    [21965343]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3326
_Vasilisk_,

по keep alive можно дополнительно почитать:
https://stackoverflow.com/questions/1480236/does-a-tcp-socket-connection-have-a-keep-alive/
6 сен 19, 14:40    [21965393]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 11154
makhaon
по keep alive можно дополнительно почитать:
Да знаю я про keep-alive
6 сен 19, 14:51    [21965399]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
vavan
Member

Откуда: Казань
Сообщений: 3366
_Vasilisk_, FD_CLOSE к сожалению не всегда ловится, хотя и бывает
6 сен 19, 17:00    [21965507]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48141

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

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

Posted via ActualForum NNTP Server 1.5

6 сен 19, 17:22    [21965526]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
Gator
Member

Откуда: Москва
Сообщений: 14910
К сожалению, кроме DSR/DTR и RTS/CTS ничего не придумали от пьяного тракториста
6 сен 19, 17:39    [21965543]     Ответить | Цитировать Сообщить модератору
 Re: Отслеживание разрыва сокета  [new]
vavan
Member

Откуда: Казань
Сообщений: 3366
Dimitry Sibiryakov
он никогда не ловится по разрыву физического канала
получать случалось и при разрывах, правда сложно сказать что там именно влекло его возникновение. в любом случае закладываться на это не приходиться
6 сен 19, 18:39    [21965600]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить