【问题标题】:FTPClient's isAvailable and is Connected return true but storeFileStream returns nullFTPClient 的 isAvailable 和 is Connected 返回 true 但 storeFileStream 返回 null
【发布时间】:2012-05-03 10:16:37
【问题描述】:

我正在使用 Commons-net FTPClient 上传大量文件(大约 2000 个)。
我在每次上传之前使用isAvailable()isConnected() 方法检查连接,如果连接关闭则重新连接。
上传一些文件(变量)后storeFileStream 返回null(这意味着“无法打开数据连接”作为javadoc)而isAvailable()isConnected() 两者都是真的!!
有什么问题?
如何检查数据连接的可用性?

谢谢

【问题讨论】:

    标签: java ftp-client apache-commons-net


    【解决方案1】:

    如何检查数据连接的可用性?

    尝试使用它。 TCP 中没有“拨号音”,因此名称为 isConnected() 的方法只能告诉您(1)您是否曾经连接过,如果幸运的话,(2)您是否有过连接随后关闭连接或在其上遇到 I/O 错误。我不熟悉您提到的 API,但 JDK 类的 isConnected() 方法除了 (1) 之外没有任何作用。

    【讨论】:

      【解决方案2】:

      您也可以尝试拨打getReplyCode()

      返回最后一个 FTP 回复的回复代码的整数值。你 通常只有在连接到 FTP 服务器后才会使用此方法 检查连接是否成功,因为 connect 是类型 无效。

      您可以通过Wikipedia link查看这些代码的含义

      【讨论】:

      • getReplyCode 仍然会返回 200,即使登录完全失败。我认为真正告诉的唯一方法是在连接后尝试 list() 调用,看看是否返回 530(登录错误)
      猜你喜欢
      • 2012-03-29
      • 2015-10-11
      • 2016-11-14
      • 2012-01-05
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      相关资源
      最近更新 更多