Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.008 c
15-1221024724
Vlad Oshin
2008-09-10 09:32
2008.11.02
BDS2006, палитра компонент, как упорядочить внутри вкладки по афл


2-1221997481
Rusl@n
2008-09-21 15:44
2008.11.02
Создание ini файла


1-1202054224
dreamse
2008-02-03 18:57
2008.11.02
Как, зная имя EXE, определить Handle окна этой программы


15-1220418839
начинающий
2008-09-03 09:13
2008.11.02
Google Chrome


2-1222171925
neon-w
2008-09-23 16:12
2008.11.02
сохранение - загрузка?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский