Как я могу восстановить сетевое соединение в сценарии Perl? - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть Perl-код, который идет на конкретный веб-сайт и извлекает из него необходимые данные. У меня возникает проблема, если я теряю связь: скрипт перестает работать. Как я могу заставить Perl-скрипт возобновить соединение и начать процесс с того места, где произошло прерывание? Могу ли я использовать Perl для возобновления соединения, если это возможно, кто-нибудь может помочь мне с шагами, пожалуйста.

Ответы [ 3 ]

2 голосов
/ 01 декабря 2009

Это невозможно сделать. После разрыва сетевого соединения транспортного уровня (например, TCP / IP) вы не сможете восстановить его снова. И протокол HTTP не обеспечивает более высокого уровня способ сделать это.

Вы должны открыть новое HTTP-соединение с сервером и возобновить извлечение. Нужно ли вам перезапустить с самого начала, или вы можете возобновить работу с того места, где вы находились, когда разрывалось соединение, зависит от того, что вы выбираете, от того, как его представляет веб-сайт, и от клиентского инструмента, который вы используете для извлечения.

1 голос
/ 01 декабря 2009

Если вы имеете в виду, что вы потеряли соединение с удаленным доступом и находитесь в Windows, ответом будет вызов команды rasdial с использованием system ().

0 голосов
/ 01 декабря 2009

Что вы имеете в виду, когда говорите «потеряю связь» и «заходим на сайт и извлекаем данные»? Является ли ваш Perl-код управляющим Socket Connection и самим копированием данных, или вы используете библиотеку Perl более высокого уровня, такую ​​как LWP или WWW :: Mechanize для «извлечения данных»

Если последнее, то вы можете прочитать этот вопрос и ответы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...