Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > нужна помощь для работы с потоками по telnet


Автор: Pall 30.4.2008, 13:07
Уважаемые, нужна помощь.
Необходимо написать программу , которая коннектится по telnet к множеству хостов, дает комманды и получает ответы.
Тривиальная программа с циклом работает, но времени уходит , с учетом постобработки, слишком много.

Есть же возможность параллельно давать команды на все хосты и получать ответы.

У кого есть опыт как это сделать,  что почитать , что использовать?

Заранее спасибо. 

Автор: ginnie 30.4.2008, 13:16
Уважаемый Pall, советую прочитать главу "Мультиплексные приложения" из книги Линкольна Штайна "Разработка сетевых программ на Perl". Там одновременная обработка нескольких соединений производится при помощи select().

Автор: shamber 30.4.2008, 17:39
Pall, попробуйте посмотреть в сторону http://poe.perl.org/. Он как раз для таких вещей создавался

Автор: KSURi 30.4.2008, 17:55
Вот кстати http://search.cpan.org/~xantus/POE-Component-Client-Telnet-0.06/lib/POE/Component/Client/Telnet.pm для работы с telnet'ом через POE

Автор: tolkien 30.4.2008, 18:24
Обычная многозадачность.

UNIX (fork exec)

my $pid = fork;
die  "fork can't create child process" unless (defined($pid));
if ($pid == 0)
{
    exec ("perl -w script.pl") or die "can't exec script.pl"; 
}

WINDOWS
$appname = 'F:/perl/bin/perl.exe';

Win32::Process::Create($ProcessObj, $appname,
              "perl -w script.pl",
               0,
               NORMAL_PRIORITY_CLASS,
               ".")|| die ErrorReport();

sub ErrorReport{
        print Win32::FormatMessage( Win32::GetLastError() );
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)