添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
知识渊博的单车  ·  WPF ...·  2 年前    · 
不羁的椰子  ·  关于脚本 - PowerShell | ...·  2 年前    · 
风流的火柴  ·  在C#中使用RESTful ...·  2 年前    · 

Python FTP:"ftplib.error_temp: 421 Timeout - try typing a little faster next time" 错误

1 人关注

我有一个程序,每当用户发出命令时,它就与一个FTP服务器进行交互。以下是我的代码的基本结构。

from ftplib import FTP
ftp = FTP(host=host)
login_status = ftp.login(user=username, passwd=password)
while True:
    command = input()
    if command == "abc":
        ftp.storbinary(textfile, textmessage1)
    elif command == "def":
        ftp.storbinary(textfile, textmessage2)

问题是,如果我在发出命令之间等待大约20秒(即如果我离开程序大约20秒),并试图在20秒的间隙后发出命令,那么这个错误信息就会弹出来。【替换代码1

据我所知,FTP服务器有时间限制,不活动后会踢你。我正在寻找一种方法,使FTP服务器保持忙碌,不再让它踢掉我的程序。基本上,任何能防止该错误信息再次出现的解决方案。

提前感谢!

3 个评论
如果你尝试像这样加一个超时时间:ftp = FTP(host=host, timeout=100)
@GiovaniSalazar 那么,如果我给超时参数加一个非常大的数字,FTP服务器就会有更大的超时空间?另外,超时变量的单位是什么,是秒还是毫秒?
当然不是, timeout 参数只在本地使用。如果对服务器没有影响。
python
ftp
ftplib
Leo Feng
Leo Feng
发布于 2019-11-17
1 个回答
Martin Prikryl
Martin Prikryl
发布于 2019-11-17
已采纳
0 人赞同

你将不得不选择。

  • Login only after prompting the user.
  • 或保持连接,同时通过执行一些假的命令来提示用户。典型的做法是发送 NOOP 命令。

    ftp.voidcmd("NOOP")
    
  •