![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| Sugar84 |
|
||||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 24.5.2010 Репутация: нет Всего: нет |
Добрый вечер.
Есть примерно такой код (сократил чтобы упростить):
При доступе к одному из серверов файлы копируются с переменным успехом, в случае удачи программа выдает такое:
и идет дальше. В случае неудачи получаю такое вот:
И вот так скрипт долго висит (2-3 минуты), затем вылетает с ошибкой:
При этом в tcpdump видно что к серваку улетают syn-пакеты на нужный порт (5 штук), но ответа нету, в нетлисте подключение висит со статусом "synsnt". Если подправить цикл вот так:
Происходит то же самое, но вылетает уже с такой ошибкой:
Долго думал как это косяк c eval обойти, и придумал вот такое решение:
Но оно мне кажется громоздким, уродливым и ээ... неправильным Вопрос 1: можно ли как-то через интерфейс к Net::FTP задать кол-во попыток подключения , т.е. чтоб скрипт не тупо кидал synsent на один порт, а несколько раз пытался именно открыть новое tcp-соединение. Облазил документация и код модулей Net::FTP, Net::FTP::dataconn, IO::Socket, IO::Socket::INET но так ничего и не смог найти. Вопрос 2: Как задать таймаут соединения? Несмотря на задаваемый параметр Timeout (ставлю 10, 20 и .д.) скрипт все равно висит около 2-3 минут при посылании synsent. Спасибо за ответы. |
||||||||||||||
|
|||||||||||||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 2 Всего: 39 |
На cpan есть модуль Net::FTP::AutoReconnect. Думаю стоит его посмотреть.
|
|||
|
||||
| Sugar84 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 24.5.2010 Репутация: нет Всего: нет |
Спасибо, задачу уже решил, но это отличный модуль.
В следующий раз буду иметь в виду! =) |
|||
|
||||
| ucb1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 24.4.2012 Репутация: нет Всего: нет |
так в чем же решение
и где найти примеры использования Net::FTP::Autoreconnect cpan перечисляет комманды без usage |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 2 Всего: 39 |
Использовать точно также, как Net::FTP. |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |