2012-05-03 116 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

相關問題