Как отловить отключение telnet (Delphi Indy telnet)? - PullRequest
0 голосов
/ 05 июля 2019

Я использую клиентский клиент Indy telnet в программе Delphi. Теперь мне нужно поймать отключение telnet (например, когда какая-то другая программа подключается к тому же хосту, мое соединение разорвалось). Как это поймать?

1 Ответ

2 голосов
/ 05 июля 2019

Вы можете использовать событие OnStatus, проверяя состояние hsDisconnected.

В настоящее время TIdTelnet не вызывает ни OnDisconnect, ни * 1009.* событие, когда соединение неожиданно закрывается.Это известная проблема, которая имеет открытый тикет в трекере проблем Indy:

# 118: TIdTelnet должен запускать OnDisconnect или OnStatus при отключении

Пока это не будет исправлено,вам придется изменить исходный код TIdTelnet, чтобы подключить его к внутреннему потоку чтения, или, по крайней мере, назначить ему обработчик OnTerminate, чтобы определить, когда он перестает работать.

...