Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.02;
Скачать: CL | DM;

Вниз

ftp, indy (TIdFTP)   Найти похожие ветки 

 
workbench   (2008-09-23 09:36) [0]

Здравствуйте, закачиваю файл с ftp посредством Indy IdFTP так:
   FTP.Get(Sourse, Dest, true, false)
   // файл нужно заменить, докачка не нужна

при этом прога зависает через раз, когда прохожу отладчиком то "подвисает" (прчём намертво) именно на этой строке, подключён в пассивном режиме, подскажите, плиз, что может быть...


 
Сергей М. ©   (2008-09-23 09:41) [1]

А где у тебя перехват и обработка исключений ?


 
workbench   (2008-09-23 09:46) [2]

там в блоке всё:

try
 FTP.Get(Sourse, Dest, true, false)
except
 ...
end

только в том то и дело, подвисает, но исключения не возникает(((


 
Dennis I. Komarov ©   (2008-09-23 09:48) [3]

"Залить" антифриз?


 
workbench   (2008-09-23 09:52) [4]

он есть, его св-ва:
 active = true
 apphaspriority = true
 onlywhenidle

таймоут небольшой, он истёкает, но ничего не происходит, по прежнему - висит


 
Сергей М. ©   (2008-09-23 09:58) [5]


> исключения не возникает


Думаю, что ты просто его не дождался - по умолчанию таймаут ожидания ввода равен infinite, т.е. бесконечное ожидание.


 
Сергей М. ©   (2008-09-23 09:59) [6]


> таймоут небольшой, он истёкает


Где ты его задаешь ? Из приведенного кода это не очевидно ..


 
Anatoly Podgoretsky ©   (2008-09-23 10:07) [7]


> workbench   (23.09.08 09:46) [2]

А нафига ты первый раз привел какое то извращение, форум не помойка.


 
Anatoly Podgoretsky ©   (2008-09-23 10:08) [8]


> таймоут небольшой, он истёкает, но ничего не происходит,
>  по прежнему - висит

Он не истекает, ознакомься как он работает в Инди.


 
workbench   (2008-09-23 10:08) [9]

свойство TIdAntiFreeze.IdleTimeOut выставлено в 60000 (1 мин), я пробовал ждать 3 минуты, думал ftp-сервер меня отбросит (у него как раз такое время выставлено), но и после 3-х минут ничего не происходит


 
Сергей М. ©   (2008-09-23 10:16) [10]


> свойство TIdAntiFreeze.IdleTimeOut выставлено в 60000


А причем здесь антифриз ? У IdFTP есть специальнго заточенное под эти дела свойство ReadTimeout, так вот оно по умолчанию как раз и равно INFINITE.
И если БабаКлава-уборщица на другом конце Тырнета нечаянно выдрала шваброй из розетки шнур питания сервера, ни исключения ни события дисконнекта при таком таймауте ты можешь никогда и не дождаться.

И вообще в каком потоке все эти "чудеса" у тебя происходят ?


 
workbench   (2008-09-23 10:19) [11]

знакомлюсь...

Описание sleep:

Sleep is a public class procedure that forces a TIdAntiFreezeBase descendant to yield processor cycles for as many as ATimeout milliseconds

English плохо у меня, я так понял что св-во TIdAntifreeze.IdleTimeOut показывает сколько времени должно пройти до вызова sleep(ATimeout), который в свою очередь в течении ATimeout "даёт работать приложению", так?


 
workbench   (2008-09-23 10:20) [12]


> Сергей М.


В основном потоке


 
Сергей М. ©   (2008-09-23 10:28) [13]

Выкинь свой антифриз по кр.мере на момент отладки - он отношения к "проблеме" вообще не имеет.

Установи ReadTimeout, скажем на 10 сек и лови исключение)


 
workbench   (2008-09-23 10:43) [14]


> Сергей М


всё так и сделал... говорю то что вижу: 3 раза закачал нормально потом опять подвис, исключения по readtimeout`у нету(((

try
  FTP.ReadTimeout := 10000;
  FTP.Get(Sourse, tmp_file_name, true, false)
except
  ...
end


 
Сергей М. ©   (2008-09-23 10:56) [15]

Попробуй еще св-во TransferTimeout выствить в ограниченное значение - оно по ум-ю тоже равно INFINITE


 
workbench   (2008-09-23 11:13) [16]

такого что-то и не видно тут (TransferTimeout в TIdFTP), из-за чего такое вообще может быть-то, касперского отключил уже - всё равно стабильно переодически подвисает, караул просто ((((


 
workbench   (2008-09-23 11:25) [17]

вот ещё что интересно, файл который закачиваю занимает 45340 байт, когда я пытаюсь его скачать и при этом происходит подвисание он на диске всё-таки появляется и занимает 45300 байт (кратно стам), а у меня как раз RecvBufferSize равен сотне, может с этим как-то связано?


 
clickmaker ©   (2008-09-23 11:54) [18]

сделай буфер побольше
512 или 1024


 
workbench   (2008-09-23 12:58) [19]

да вот поставил 512, пока ни разу не сбойнуло, возможно и правда из-за этого... всё равно дурдом конечно (я имею ввиду такую вот закачку, раз через раз, возможно конечно руки кривые, но здесь косячить-то вроде особо негде)


 
Сергей М. ©   (2008-09-23 13:08) [20]


> здесь косячить-то вроде особо негде


9-я индейская версия славна "косяками" на ровном месте.
Их и в 10-ке немало, но тем не менее)


 
workbench   (2008-09-23 15:40) [21]

да, пока всё гуд, может и дальше всё нормально будет... по поводу [20]  - доселе всё с этими компонентами было хОКкей, удивлён что в них есть "общепризнанные" косяки...

спасибо всем кто принял участие в теме :]


 
Anatoly Podgoretsky ©   (2008-09-23 15:49) [22]

> workbench  (23.09.2008 15:40:21)  [21]

Только один - сплошной глюк.


 
workbench   (2008-09-23 15:52) [23]


> Anatoly Podgoretsky


Я в вашей книге (в вашем переводе, "Indy in depth") таких слов не встречал (хотя читал далеко не всё)


 
Anatoly Podgoretsky ©   (2008-09-23 15:58) [24]

> workbench  (23.09.2008 15:52:23)  [23]

Основной глюк в том, что это чужеродное для Виндоус тело.
А если ты читал хотя бы комментарий от переводчика, то ты должен был обратить внимание на фразу "что эта книга не о Инди"


 
workbench   (2008-09-23 16:12) [25]

а я это принял за "афоризм" ))), а если серьёзно - то на равных рассуждать об этих компонентах не могу конечно


 
Anatoly Podgoretsky ©   (2008-09-23 16:17) [26]

> workbench  (23.09.2008 16:12:25)  [25]

Ну я тем более не могу, я с ними не работаю.


 
Dennis I. Komarov ©   (2008-09-24 09:24) [27]


> Anatoly Podgoretsky ©   (23.09.08 16:17) [26]

А где же реклама ICS? ;)


 
Anatoly Podgoretsky ©   (2008-09-24 09:57) [28]

> Dennis I. Komarov  (24.09.2008 9:24:27)  [27]

Для тебя - переходи на ICS,
Инди бяка.


 
Anatoly Podgoretsky ©   (2008-09-24 09:57) [29]

Удалено модератором


 
Dennis I. Komarov ©   (2008-09-24 10:16) [30]


> Инди бяка.

+1, но ICS тоже надо уметь готовить. (да и не все там у них гладко)
WinInet.pas!!!



Страницы: 1 вся ветка

Текущий архив: 2008.11.02;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.012 c
4-1199137051
Riply
2008-01-01 00:37
2008.11.02
Фрагментация временного пространства.


15-1220891287
dr_creigan
2008-09-08 20:28
2008.11.02
Винды-таки глючат...


2-1222094531
N77
2008-09-22 18:42
2008.11.02
живой запрос


15-1220301375
Пробегал2....
2008-09-02 00:36
2008.11.02
Покупки в интернете


10-1149852277
Портос
2006-06-09 15:24
2008.11.02
Не завершается процесс с COM объектом внутри.