| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| raise |
| Автор: Sokolll 14.5.2007, 13:10 |
| Спасибо. |