K
Knute Johnson
The code below, as ugly as it is, runs perfectly on Windows but hangs at
the gettextfile under Linux. I'm using ruby-1.8.6.111-1.fc8 on Fedora 8
and ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] under Windows
XP. I am able to use the command line ftp client to log into the site
and retrieve the file with no problems. Any ideas?
Thanks,
#!/usr/bin/ruby
require 'net/ftp'
def getMetar(id)
metar = Array.new
i = 0
ftp = Net::FTP.new('tgftp.nws.noaa.gov')
puts ftp.login
puts ftp.sendcmd('PASV')
ftp.chdir('/data/observations/metar/stations')
ftp.gettextfile("#{id.upcase}.TXT") do |line|
metar = line
i = i + 1
end
ftp.close
return metar
end
puts getMetar("KBFL")
[knute@www ~]$ ruby metar.rb
230 Login successful.
227 Entering Passive Mode (140,90,128,71,154,251)
/usr/lib/ruby/1.8/net/ftp.rb:340:in `accept': Interrupt
from /usr/lib/ruby/1.8/net/ftp.rb:340:in `transfercmd'
from /usr/lib/ruby/1.8/net/ftp.rb:421:in `retrlines'
from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
from /usr/lib/ruby/1.8/net/ftp.rb:419:in `retrlines'
from /usr/lib/ruby/1.8/net/ftp.rb:518:in `gettextfile'
from metar.rb:13:in `getMetar'
from metar.rb:37
The error trace is generated when I press control-C after the hang.
the gettextfile under Linux. I'm using ruby-1.8.6.111-1.fc8 on Fedora 8
and ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] under Windows
XP. I am able to use the command line ftp client to log into the site
and retrieve the file with no problems. Any ideas?
Thanks,
#!/usr/bin/ruby
require 'net/ftp'
def getMetar(id)
metar = Array.new
i = 0
ftp = Net::FTP.new('tgftp.nws.noaa.gov')
puts ftp.login
puts ftp.sendcmd('PASV')
ftp.chdir('/data/observations/metar/stations')
ftp.gettextfile("#{id.upcase}.TXT") do |line|
metar = line
i = i + 1
end
ftp.close
return metar
end
puts getMetar("KBFL")
[knute@www ~]$ ruby metar.rb
230 Login successful.
227 Entering Passive Mode (140,90,128,71,154,251)
/usr/lib/ruby/1.8/net/ftp.rb:340:in `accept': Interrupt
from /usr/lib/ruby/1.8/net/ftp.rb:340:in `transfercmd'
from /usr/lib/ruby/1.8/net/ftp.rb:421:in `retrlines'
from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
from /usr/lib/ruby/1.8/net/ftp.rb:419:in `retrlines'
from /usr/lib/ruby/1.8/net/ftp.rb:518:in `gettextfile'
from metar.rb:13:in `getMetar'
from metar.rb:37
The error trace is generated when I press control-C after the hang.