Perlについての質問箱 26箱目
■ このスレッドは過去ログ倉庫に格納されています
0371デフォルトの名無しさん
2006/08/04(金) 04:00:44ttp://joe.ash.jp/pc/netprog/ftp.pl.txt
ここにあるFTP転送スクリプトを一定時間サーバーの応答がなければ
実行を止めるというタイムアウト処理をするように書き換えようと思います。
alarm関数でなくselectでタイムアウト処理をしようと思いますが
以下のようにftp_recvを書き換えてみましたがタイムアウト処理が
行われません。どうしたら良いかご教授願います。
sub ftp_recv {
my ($sock) = @_;
my ($buf, $rc, $cont, $msg);
my $rin = '';
my $rout;
my $ftp_timeout = 10.0;
$rc = 0;
vec($rin, fileno $sock, 1) = 1;
die unless select $rout=$rin, undef, undef, $ftp_timeout;
while (chomp($buf=<$sock>)) {
die unless select $rout=$rin, undef, undef, $ftp_timeout;
print "$buf\n";
$buf =~ /^(\d\d\d)([ |-])(.*)/;
$rc = $1; $cont = $2; $msg = $3;
if ($cont ne '-') { last; }
}
return($buf);
}
■ このスレッドは過去ログ倉庫に格納されています