F
Fengfeng Li
Hi everyone,
I'm using ruby 1.8.7 p334 on windows.
My code below is really simple, but there's something wrong if the ftp
lasts for a long time:
#code begin
require 'net/ftp'
require 'time'
ftp = Net::FTP.new("189.41.6.136")
ftp.login("mlog_123_usr", "MLog_123_pwd")
puts Time.now()
puts ftp.list
ftp.putbinaryfile("D:\\version\\XXX.cc") # here
puts Time.now()
ftp.close
#code end
My destination host is very slow, so uploading a file(about 5M) can take
about 15 minutes, then ruby.exe cann't exit forever(I see from the host
to make sure the file has been uploaded and there's no existing
ftp-users)!
If the uploading can be finished in a few seconds, everything is OK.
I've tried both the 1.8.6&1.8.7 version, they behaved the same way.
I traced the raw codes in ftp.rb, and found it was stopped when
@sock.readline.
#ruby code
def getline
line = @sock.readline # if get EOF, raise EOFError
line.sub!(/(\r\n|\n|\r)\z/n, "")
if @debug_mode
print "get: ", sanitize(line), "\n"
end
return line
end
private :getline
#ruby code
Is it because of my host not giving ruby.exe correct response, or
because of ruby itself?
Thanks a lot.
I'm using ruby 1.8.7 p334 on windows.
My code below is really simple, but there's something wrong if the ftp
lasts for a long time:
#code begin
require 'net/ftp'
require 'time'
ftp = Net::FTP.new("189.41.6.136")
ftp.login("mlog_123_usr", "MLog_123_pwd")
puts Time.now()
puts ftp.list
ftp.putbinaryfile("D:\\version\\XXX.cc") # here
puts Time.now()
ftp.close
#code end
My destination host is very slow, so uploading a file(about 5M) can take
about 15 minutes, then ruby.exe cann't exit forever(I see from the host
to make sure the file has been uploaded and there's no existing
ftp-users)!
If the uploading can be finished in a few seconds, everything is OK.
I've tried both the 1.8.6&1.8.7 version, they behaved the same way.
I traced the raw codes in ftp.rb, and found it was stopped when
@sock.readline.
#ruby code
def getline
line = @sock.readline # if get EOF, raise EOFError
line.sub!(/(\r\n|\n|\r)\z/n, "")
if @debug_mode
print "get: ", sanitize(line), "\n"
end
return line
end
private :getline
#ruby code
Is it because of my host not giving ruby.exe correct response, or
because of ruby itself?
Thanks a lot.