Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обработать исключения Indy, не могу поймать try/except 
V
    Опции темы
Ibragim
Дата 15.11.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Вечер добрый.
Не бейте сильно если вопрос глупый. smile 
Подскажите плз, где ошибка.

Код

var
  connect_flag: boolean;
  lt: TIdTcpClient;
begin
  lt := TIdTcpClient.Create(nil);

  try
    lt.Host := 'xxx.xxx.xxx.xxx';    // Любой IP, вводим прямо сюда теста
    lt.Port := 80;
    lt.ReadTimeout := 3000;
    lt.Connect(TimeOut);
    lt.SendCmd('asdasde');         // Здесь специально ничего не значащая белиберда, будет ошибка
  except
    connect_flag := false;
  end;
  lt.Destroy;
<........>


На строчке lt.SendCmd('asdasde'); программа зависает, вне зависимости от значений TimeOut. То есть по следующему F8 ни на блок exception, ни на строку It.Destroy управление не передается. Чего посоветуете? Как "разморозить" или где ошибка.
PS AntiFreeze на формочке лежит.

PM MAIL   Вверх
Snowy
Дата 16.11.2006, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(Ibragim @  15.11.2006,  23:39 Найти цитируемый пост)
lt.SendCmd('asdasde');
Код

lt.Write('asdasde');
// или так:
lt.WriteLn('asdasde');

PM MAIL   Вверх
dumb
Дата 16.11.2006, 05:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 5
Всего: 158



SendCmd следует использовать либо в связке с серверной компонентой, в которой прописаны CommandHandler'ы, либо когда есть уверенность в том, что удаленная сторона соответствующим образом ответит.

если ответа не будет, SendCmd будет 2147483647(MaxInt) раз пытаться прочитать его. тут никакой ReadTimeout не спасет... smile
PM MAIL   Вверх
Ibragim
Дата 16.11.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



Угу, заработало. Большой сэнкс.

А с TIdHttp такой же прикол есть?

Код ниже ведет себя точно так же... то бишь зависает.


Код

    MyIdHttp.ReadTimeout := 3000;
    MyIdHttp.Get('http://asdasde/asdssd.htm/')

PM MAIL   Вверх
Snowy
Дата 16.11.2006, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Нет. В http это не обойти.
Единственный вариант - запускать в потоке или бросить на форму TIdAntifrize
PM MAIL   Вверх
Ibragim
Дата 16.11.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 28.9.2004
Где: Киев

Репутация: нет
Всего: нет



гуд. Понял. Сэнкс за ответы. Можно закрывать тему.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.