![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| Sokolll |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.4.2007 Репутация: 0 Всего: 0 |
Использую Indy10.1.5 TIdTCPServer и TIdTCPClient, SSL (0.96m).
Подсоединяюсь к серверу клиентом, все работает нормально. Останвливаю сервер, запускаю снова на том же порту, подсоединяюсь - и на клиенте и на сервере вылетает ERangeError: Range Check Error (причем вылетает не каждый раз) - в модуле IdIOHanlder.pas в процедуре TIdIOHandler.ReadBytes в после строки ReadFromSource:
На сервере читаю строки:
На клиенте(в потоке) аналогично:
Если делать то же самое без SSL - все нормально работает. Искал в И-нете - нашел (http://newsgroups.cryer.info/borland/public.delphi.internet.winsock/200504/0504131867.html) , что это вроде бы как баг версии Indy 10.0.52 и в следующих версиях он исправлен. Помогите, плиз! |
||||||
|
|||||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
скачай последнюю 10.1.6 версию, может там эта проблема решена
-------------------- There are always someone smarter than you... |
|||
|
||||
| Sokolll |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.4.2007 Репутация: 0 Всего: 0 |
скачал - то же самое :( |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 14 Всего: 128 |
найди ту строку, на которой действительно возникает исключение. выход за пределы массива...
а те куски, что приведены, ни о чем не говорят -------------------- There are always someone smarter than you... |
|||
|
||||
| Sokolll |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 8.4.2007 Репутация: 0 Всего: 0 |
IDE показывает, что ошибка происходит в IdIOHandler.pas вот здесь (строка CheckForDisconnect):
Разобрался я вроде: Сначала на клиенте сделал обработку ошибок:
Ошибка все равно вылетала. Потом дошло: выполниться ли код в потоке или нет у меня зависит от FConnected, значение которого меняется на False только в обработчике IdTCPClient.OnDisconnected:
Получается, что OnDisconnected не срабатывает. Добавил строчку FConnected:=False в Run и стало работать нормально:
Работает, но не могу понять, почему не работало до этого - ведь поток то останавливаю, да и почему RangeCheckError. Без SSl все ОК. |
||||||||||
|
|||||||||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |