2009-02-12 27 views

回答

6

看起來像WWW ::捲曲和CURLOPT_MAX_RECV_SPEED_LARGE選項 你想要什麼:

#!/usr/bin/env perl 

use strict; 
use warnings; 
use feature ':5.10'; 
use WWW::Curl::Easy; 

# Setting the options 
my $curl = WWW::Curl::Easy->new; 

$curl->setopt(CURLOPT_HEADER,1); 
$curl->setopt(CURLOPT_URL, 'http://www.google.com'); 
$curl->setopt(CURLOPT_MAX_RECV_SPEED_LARGE, 1); 

my $response_body; 
open my $fh, ">", \$response_body or die; # presumably this can be a real file as well. 
$curl->setopt(CURLOPT_WRITEDATA,$fh); 

my $ret = $curl->perform; 
die 'Error: '. $curl->strerror($ret) if $ret; 

my $response_code = $curl->getinfo(CURLINFO_HTTP_CODE); 
say "Received response: $response_body"; 

在這個例子中,我們以每秒一個字節下載谷歌。很慢 慢。

3

的技術不限於Perl和不限於特定的協議是使用trickle

滴流是便攜式輕量級用戶空間帶寬整形器。它可以以協作模式運行(與滴漏一起)或以獨立模式運行。

How do you throttle the bandwidth of a socket connection in C?

見這將是不錯的打包這種技術,因爲Perl模塊(例如一個繼承IO ::手柄),但我不知道一個。