Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Не срабатывает TIdTCPServer.OnException


Автор: Sokolll 14.5.2007, 10:15
Использую TIdTCPServer, пишу на  BDS2006, версия Indy 10.5. Для обработки исключений задаю обработчик на событие OnException, в котором хочу вывести сообщение об ошибке.
Запускаю сервер,  подключается клиент, соединение работает нормально. Закрывю клиент, компилятор сервера выдает сорбщение: Project Server.exe raised exception class EIdSocketError with message 'Socket Error # 10053 Software caused connection abort.'. 
Делаю Continue, но на сервере сообщение об ошибке не выдается.

Пробовал делать то же самое в Delphi7, indy 9 - срабатывает. Может это у BDS глюк или кроме обработчика OnException где-нибудь что-то еще надо писать?



Автор: Snowy 14.5.2007, 10:25
Ну так ты же в среде под отладчиком запускаешь.
Запусти не из IDE. Или в IDE по Ctrl+Shift+F9

Автор: Sokolll 14.5.2007, 11:36
Запускал - бесполезно :(
Сервер продолжает работать как и раньше, и клиенты могут коннектиться.

Автор: Snowy 14.5.2007, 11:38
Что-то непонятно, на что тогда жалуешься, если всё работает?

Автор: Sokolll 14.5.2007, 11:43
Так ошибка -то не обрабатывается! Мне нужно выдать сообщение об ошибке и закрыть серверное приложение,  если связь с клиентом разорвана. 

Автор: Sokolll 14.5.2007, 12:00
Все! понял. 
Когда клиент отсоединятся - возникает не onException, а onDisconnect. Задал обработчик - обрабатывает. 
А не подскажите, как сгенерировать исключение, чтобы проверить работу обработчика OnException? Говорят, как-то можно удлить TCP/IP протокол Windows.

Автор: Snowy 14.5.2007, 12:29
Цитата(Sokolll @  14.5.2007,  12:00 Найти цитируемый пост)
А не подскажите, как сгенерировать исключение, чтобы проверить работу обработчика OnException?
raise

Автор: Sokolll 14.5.2007, 13:10
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)