FTP监控和下载新文件

时间:2010-04-13 00:23:37

标签: c# sockets ftp

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

  

421自从您处于非活动状态300秒后断开连接。

有人可以解释一下吗?我对这个进行了搜索,但我似乎无法找到一个好的解释。感谢。

2 个答案:

答案 0 :(得分:3)

它表示它已断开连接,因为您的连接处于非活动状态300秒。这是FTP服务器上的常见做法,因为(与HTTP相反)FTP不是无状态的,连接保持打开状态,不执行任何操作的连接可以轻松填满服务器的连接限制。

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

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

答案 1 :(得分:1)

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

如果我是正确的,您只需设计应用程序以解决此约束,通过在断开连接时重新连接,并执行重新验证应用程序内部状态所需的任何活动。