2013-04-17 91 views
0

我需要幫助編寫一個腳本來發送25個請求,然後關閉套接字並開始一個新的。Perl While循環發送HTTP請求

這是我到目前爲止有:

while ($count<25) { 
    $count++; 
    die "Could not create socket: $!\n" unless $sock; 
    print $sock "GET/HTTP/1.1\r\n"; 
    print $sock "Host: $host \r\n"; 
    print $sock "Cookie: $rand \r\n\r\n"; 
    print while <$sock>; 
    close($sock); 
}; 

所以經過25個請求,它關閉套接字,並開始另一個(有點像一個goto命令)。

+2

整除也許你應該考慮使用一個模塊用於此目的,如['LWP :: UserAgent' ](http://search.cpan.org/perldoc?LWP%3A%3AUserAgent)。這很可能會讓你的生活比使用套接字容易得多。 – TLP

回答

0

聽起來像是你有某種(或的foreach時)循環

while (...) { 
    ... Uses $socket ... 
} 

,並要使用相同的$插座25遍,然後切換到一個新的。所以,簡單地計算遍數,並更新$插座是否經過傳遞的數量是25

my $socket; 
my $count = 0; 
while (...) { 
    if (($count++ % 25) == 0) { 
     $socket = ...; 
    } 

    ... Uses $socket ... 
} 
+0

我其實想要的東西是這樣的:1)打開套接字,2)發送25請求,3)關閉套接字,4)循環 –

+0

@Mohamed Gamrah,你總是發送相同的25個請求?無條件循環(而不是重複列表中的每個元素,特定次數或直到條件爲真)? 'while(1){my $ socket = ...; ... 發送請求 ...; }' – ikegami