[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Anybody tell me about net/ftp protocol ?

Vellingiri Arul

10/19/2007 6:30:00 AM

Dear Friends,
I am having the source code like this.
require 'net/ftp'

ftp = Net::FTP::new("ftp.ruby-lang.org")
ftp.login("anonymous", "matz@ruby-lang.org")
ftp.chdir("/pub/ruby")
tgz = ftp.list("ruby-*.tar.gz").sort.last
print "the latest version is ", tgz, "\n"
ftp.getbinaryfile(tgz, tgz)
ftp.close

while running this code It is not working properly.
as long as it is simply running,But I am not getting any result.
After pressing ctrl+c I got the error like this.
Please anybody clarify my doubts.
The error is:

/usr/lib/ruby/1.8/net/ftp.rb:211:in `readline': Interrupt
from /usr/lib/ruby/1.8/net/ftp.rb:211:in `getline'
from /usr/lib/ruby/1.8/net/ftp.rb:221:in `getmultiline'
from /usr/lib/ruby/1.8/net/ftp.rb:235:in `getresp'
from /usr/lib/ruby/1.8/net/ftp.rb:251:in `voidresp'
from /usr/lib/ruby/1.8/net/ftp.rb:176:in `connect'
from /usr/lib/ruby/1.8/monitor.rb:238:in `synchronize'
from /usr/lib/ruby/1.8/net/ftp.rb:174:in `connect'
from /usr/lib/ruby/1.8/net/ftp.rb:136:in `initialize'
from net.rb:3:in `new'
from net.rb:3
--
Posted via http://www.ruby-....

2 Answers

Alex Gutteridge

10/19/2007 7:30:00 AM

0

On 19 Oct 2007, at 15:30, Arul hari wrote:

> Dear Friends,
> I am having the source code like this.
> require 'net/ftp'
>
> ftp = Net::FTP::new("ftp.ruby-lang.org")
> ftp.login("anonymous", "matz@ruby-lang.org")
> ftp.chdir("/pub/ruby")
> tgz = ftp.list("ruby-*.tar.gz").sort.last
> print "the latest version is ", tgz, "\n"
> ftp.getbinaryfile(tgz, tgz)
> ftp.close
>
> while running this code It is not working properly.
> as long as it is simply running,But I am not getting any result.
> After pressing ctrl+c I got the error like this.
> Please anybody clarify my doubts.
> The error is:
>
> /usr/lib/ruby/1.8/net/ftp.rb:211:in `readline': Interrupt
> from /usr/lib/ruby/1.8/net/ftp.rb:211:in `getline'
> from /usr/lib/ruby/1.8/net/ftp.rb:221:in `getmultiline'
> from /usr/lib/ruby/1.8/net/ftp.rb:235:in `getresp'
> from /usr/lib/ruby/1.8/net/ftp.rb:251:in `voidresp'
> from /usr/lib/ruby/1.8/net/ftp.rb:176:in `connect'
> from /usr/lib/ruby/1.8/monitor.rb:238:in `synchronize'
> from /usr/lib/ruby/1.8/net/ftp.rb:174:in `connect'
> from /usr/lib/ruby/1.8/net/ftp.rb:136:in `initialize'
> from net.rb:3:in `new'
> from net.rb:3
> --
> Posted via http://www.ruby-....
>

Your code works for me, which suggests there was either a problem
with the ftp server when you tried it or there's something wrong with
your connection/firewall. Unrelated to your problem above, you'll
have to make a small change in your dir listing code to get it to
properly work:

require 'net/ftp'

ftp = Net::FTP::new("ftp.ruby-lang.org")
ftp.login("anonymous", "matz@ruby-lang.org")
ftp.chdir("/pub/ruby")
tgz = ftp.list("ruby-*.tar.gz").map{|l| l.split[8]}.sort.last
print "the latest version is ", tgz, "\n"
ftp.getbinaryfile(tgz, tgz)
ftp.close

Alex Gutteridge

Bioinformatics Center
Kyoto University



Gordon Beaton

10/19/2007 7:37:00 AM

0

On Fri, 19 Oct 2007 16:29:59 +0900, Alex Gutteridge wrote:
> Your code works for me, which suggests there was either a problem
> with the ftp server when you tried it or there's something wrong
> with your connection/firewall.

Probably the OP needs to put the connection in passive mode.

/gordon

--