Forum Webscript.Ru
Программирование => Perl => Тема начата: DNK от 26 Марта 2006, 16:05:30
-
Вот написал скрипт:
#!/usr/bin/perl
use IO::Socket;
open(OUT,">adres.txt");
$begin=153235;
$end=153400;
for ($i=$begin;$i<=$begin+5;$i++)
{
if ($pid=fork())
{
push(@forked,$pid);
}
else
{
geting($i);
exit;
}
}
killall();
################################################
sub geting
{
$id=$_[0];
$socket = IO::Socket::INET->new(PeerAddr => \'***.***.***.***\',
PeerPort => \'80\',
Proto => \'tcp\');
print $socket "GET /put/k/skript.jsp?id=$id HTTP/1.1\\r\\n";
print $socket "Host: host\\r\\n";
print $socket "Authorization: Basic dXNlcnBhc3M=\\r\\n\\r\\n";
$socket->recv($answer,1024);
print OUT $answer;
}
################################################
sub killall
{
foreach $pid (@forked)
{
chomp;
waitpid($pid,0);
kill("TERM" => $pid)
}
undef @forked;
}
################################################
Но почему то в файл ответы серва записывались не полностью. Увеличение получаемых байтов не помогло.
($socket->recv($answer,2048);)
в чем проблема, всем спасибо
-
use LWP::UserAgent;
my $ua = new LWP::UserAgent;
my $response = $ua->get("http://***.***.***.***/put/k/skript.jsp?id=$id");
if( $response->is_success ) {
print $response->content;
} else {
die $response->status_line;
}