Indy - знать, когда модем отправил флаг RESET [RST] - PullRequest
3 голосов
/ 21 марта 2012

Я заметил, что я получаю EIdSocketError с LastError = 10054 или 10053, когда устройство, с которым я говорю, отправляет ответ RESET.Что имеет смысл, учитывая, что 10054 является Connection Reset By Peer.

Так есть ли что-нибудь, что я могу проверить в Indy, чтобы определить, произошло ли это, а не оборачивать мой код в блок try / кроме и искать коды ошибок 10054 или 10053?

Один сценарий, с которым я столкнулся, был, когда модем ответил с ответом RESET после того, как я соединился (Indy не вызывал исключение), таким образом, с моей точки зрения, соединение установилось успешно.Затем я попытался записать в сокет (то есть отправить пакет, используя TidTCPClient), и возникла ошибка 10054.

Можно ли вообще увидеть этот ответ RESET?

Спасибо

1 Ответ

2 голосов
/ 21 марта 2012

Использование try..except - правильный путь.Инди сообщает через исключения.Даже «Соединение закрыто изящно» - исключение в глазах Инди.

...