2012-05-03 122 views
0

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

感谢

回答

3

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

尝试使用它。 TCP中没有'拨号音',所以名称为isConnected()的方法只能告诉你(1)你是否曾经连接过,如果幸运的话,(2)你是否随后关闭连接或遇到I/O错误。我对你提到的API并不熟悉,但是JDK类的isConnected()方法在(1)之外没有做任何事情。

0

您也可以尝试致电getReplyCode()

返回上次FTP回复的回复代码的整数值。在连接到FTP服务器 以检查连接是否成功,因为连接的类型为 void,因此您通常只在此方法中使用此方法。

你可以查阅一下这些代码从这个Wikipedia link

+0

getReplyCode意味着仍然会返回200即使在登录完全失败。我认为唯一真正能够告诉的方法是在连接后尝试一个list()调用,看看是否返回530(登录错误) – Amalgovinus

相关问题