【问题标题】:FTP monitoring and downloading of new filesFTP监控和下载新文件
【发布时间】:2011-02-07 05:59:19
【问题描述】:

我有一个使用 C# 套接字的 FTP 监控/下载应用程序。我收到此错误消息:

421 由于您 300 秒不活动,因此断开了您的连接。

有人能解释一下吗?我对此进行了搜索,但似乎仍然找不到很好的解释。谢谢。

【问题讨论】:

  • 我们应该能够从这条错误消息中收集到哪些您无法收集到的信息?
  • 抱歉 ChaosPandion。我正在使用 c# 套接字,我期待“您的数据套接字或命令套接字被服务器强制关闭,如果您处于下载模式,也许您应该查看您的命令套接字”之类的东西。也许这回答了我的问题,但我需要一些专家的确认。无论如何,谢谢。
  • 无需道歉,这是为了从您那里获取更多细节的非恶意尝试。很难用文字表达情感意图。

标签: c# sockets ftp


【解决方案1】:

它说它断开了您的连接,因为您的连接在 300 秒内处于非活动状态。这是 FTP 服务器上的常见做法,因为(与 HTTP 不同)FTP 不是无状态的,连接保持打开状态,并且不执行任何操作的连接很容易满足服务器的连接限制。

显而易见的解决方案是确保您不会在 300 秒内保持不活动状态。创建一个每分钟左右执行一次操作的计时器,例如获取当前目录中的文件列表等。

编辑:正如 ChaosPandion 在评论中提到的那样,也许您应该在完成后关闭连接,并在再次需要时重新打开它。

【讨论】:

  • 真的,如果您的应用在 300 秒内没有执行任何任务(代码的生命周期。),您可能应该断开连接。
【解决方案2】:

我认为这很容易解释。服务器正在断开您的连接,因为它在 5 分钟内未处于活动状态。问题是:什么是活动? 恐怕在 FTP RFC 中找不到答案,因为这可能是特定于实现的。此外,超时间隔可能会有所不同(可以通过 FTP 管理实用程序进行配置)。

如果我是正确的,您只需设计您的应用程序以解决此限制,方法是在断开连接时重新连接,并执行任何必要的活动来重新验证您的应用程序的内部状态。

【讨论】:

    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 2016-09-02
    • 2012-10-18
    • 1970-01-01
    • 2018-05-11
    相关资源
    最近更新 更多