Другие языки программирования и технологии

проблема с FTP клиентом который я написала на C++ .

вообщем ситуация такая .. мой клиент подключается к серверу narod.ru ..авторизовывается и ищит на хосте специальный файл который в дальнейшим необходимо скачать .. а проблема собственно в следующим .. мой клиент ежесекундно проверяет наличие этого файла на хосте ...и из за этого спустя определённое время мой хост блокируют .. посчитав наверное как атаку .. я делала интервал и в полторы секунды и через Рендом .. всё это бесполезно .. может я что то не понимаю ...объясните мне .. и ещё я вкурсе что авторизация на сервере действует всего 60 секунд .. :) ..
Ulugbek Soliev
Ulugbek Soliev
57
Если нужно быстро среагировать на событие, то никакие проверки через интервалы времени делать не следует. Это наоборот увеличивает время ожидания.
Но FTP ведь не может оповестить клиента об изменении в файлах.. . То есть он не совсем для этого подходит и нужно менять или задачу или способ решения.

Здесь правильнее было бы применять TCP протокол. Или в худшем случае HTTP.
TCP позволяет иметь неограниченной длины сессию, и приём/передачу одновременно с обоих концов.
HTTP другое дело, это тот же TCP но уже на уровне запроса. Если клиенту нужно передать на сервер то он шлёт запрос, а если серверу нужно быстро отдать что-то клиенту.. . то на сервере для этого должен находиться постоянно висящий запрос от клиента. На который сервер и ответит. Или не ответит, и клиент опять его подаст.

Касаемо того что авторизация действует всего 60 секунд - правильно сделано в FileZilla. Если сервер внезапно разорвал подключение то клиент снова производит вход на сервер. Делает действие. И так далее. Встречает ответ "не авторизован" и снова производит авторизацию. То есть приложение надо делить на 2 части - логику работы с FTP, и внутреннюю логику передачи/получения ответа с FTP. И там прозрачно делать повторную авторизацию.
Александр Дегтярев
Александр Дегтярев
10 716
Лучший ответ
Дело не в частоте повторений, а в их количестве (хотя это связано) . Скорее всего, блокируют если за некоторый промежуток (скажем, минуту) было сделано, условно, 20 запросов. Попробуй увеличить интервал до полуминуты. Или нужно очень-очень оперативно реагировать? Тогда нужно использовать не narod, а свой сервак.
А ещё файл может находиться в состоянии закачки, поэтому лучше сделать два обновления и сравнить размер. Если он не изменился, только тогда качать.
MI
Mirror Inside...
90 351
Это почему "авторизация на сервере действует всего 60 секунд" ? Не замечал такого
А зачем так часто проверять? Не лучше ли будет подрубиться, проверить наличие файла, отрубиться, подождать, скажем, минуту, повторить?
ого.. вот это девушка... .
давай познакомимся?
НО
Начын Ондар
13 269
Есть возможность провести тест на сторонней машине? Скажем. . у друга разместить сервак? если проблема будет повторяться, то само собой "движок" (я думаю вам это понятно) . А от себя скажу. . что отошел я от народа.. . :)
Валерий Юров
Валерий Юров
8 255
Может скрипт программы неверный, так-что проверьте правильность написанного скрипта