Net::ftp模块出现Unable to close datastream错误

Net::ftp模块出现Unable to close datastream错误

下载的数据库文件是已经下载完了,大小有1G多,但是MD5校验跟远程的不一样.所以脚本自动循环重新下载.
可文件也可以正常解压,不知什么原因,有时候会出现这个错误:
提示是这个信息Unable to close datastream at ./server.pl line 369
代码是:

[Copy to clipboard] [ - ]
CODE:
361 sub get_file{
362         my($save_data,$host,$file,$ftp_user,$ftp_passwd)=($_[0],$_[1],$_[2],    $_[3],$_[4]);
363         my $ftp=Net::FTP->new($host,Port=>2121,Passive=>1,Debug=>1);
364         $ftp->login($ftp_user,$ftp_passwd);
365         $ftp->binary;
366         my $offset = (stat($save_data))[7] || 0;
367         print GLOG &get_time,"  start DL <$host> <$file>\n";
368         print &get_time,"  start DL <$host> <$file>\n";
369         $ftp->get($file,$save_data,$offset);
370         $ftp->quit;
371 }

打开FTP调试信息后是:

[Copy to clipboard] [ - ]
CODE:
Net::FTP>>> Net::FTP(2.77)
Net::FTP>>>   Exporter(5.58)
Net::FTP>>>   Net::Cmd(2.29)
Net::FTP>>>   IO::Socket::INET(1.29)
Net::FTP>>>     IO::Socket(1.29)
Net::FTP>>>       IO::Handle(1.25)
Net::FTP=GLOB(0x831a6f4)<<< 220 yhqz Microsoft FTP Service (Version 5.0).
Net::FTP=GLOB(0x831a6f4)>>> USER ftp
Net::FTP=GLOB(0x831a6f4)<<< 331 Anonymous access allowed, send identity (e-mail name) as password.
Net::FTP=GLOB(0x831a6f4)>>> PASS ....
Net::FTP=GLOB(0x831a6f4)<<< 230 Anonymous user logged in.
Net::FTP=GLOB(0x831a6f4)>>> TYPE I
Net::FTP=GLOB(0x831a6f4)<<< 200 Type set to I.
<2007-10-28 9:26:47>  start DL <10.2.23.11> <full_fzqzonemart2007-10-28-00-50-01.rar>
Net::FTP=GLOB(0x831a6f4)>>> PASV
Net::FTP=GLOB(0x831a6f4)<<< 227 Entering Passive Mode (10,2,23,11,8,120).
Net::FTP=GLOB(0x831a6f4)>>> REST 1608693348
Net::FTP=GLOB(0x831a6f4)<<< 350 Restarting at 1608693348.
Net::FTP=GLOB(0x831a6f4)>>> RETR full_fzqzonemart2007-10-28-00-50-01.rar
Net::FTP=GLOB(0x831a6f4)<<< 125 Data connection already open; Transfer starting.
Net::FTP=GLOB(0x831a6f4)<<< 426 Connection closed; transfer aborted.
Unable to close datastream at ./server.pl line 369
Net::FTP=GLOB(0x831a6f4)>>> QUIT
Net::FTP=GLOB(0x831a6f4)<<< 550 full_fzqzonemart2007-10-28-00-50-01.rar: An invalid argument was supplied.

看样子应该是你的ftp连接断开了啊。


QUOTE:
原帖由 freeand 于 2007-10-28 10:54 发表
看样子应该是你的ftp连接断开了啊。

它这是一连上去就断开了,是什么原因呢?
这样吧,你用一般的ftp客户端软件试一下,看看是不是也出现这样现象。。。我觉得你的ftp服务器长时间下载的时候是不是会断一下的啊。
要么,继传下载吧,Net:FTP支持的。