2011-09-16 127 views
-1

我在Windows中使用FileZilla的運行FTP服務器。我能夠連接到它,但是當我嘗試上傳文件或列出文件,我得到一個異常。我嘗試的例子,從這個頁面http://www.kodejava.org/examples/357.htmlJava的FTP上傳文件

Login success... 
java.net.SocketException: Software caused connection abort: socket write error 
at java.net.SocketOutputStream.socketWrite0(Native Method) 
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) 
at java.net.SocketOutputStream.write(SocketOutputStream.java:153) 
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) 
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) 
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) 
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) 
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) 
at java.io.BufferedWriter.flush(BufferedWriter.java:254) 
at org.apache.commons.net.ftp.FTP.__send(FTP.java:496) 
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:470) 
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:547) 
at org.apache.commons.net.ftp.FTP.port(FTP.java:872) 
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:667) 
at org.apache.commons.net.ftp.FTPClient.listNames(FTPClient.java:2528) 
at org.apache.commons.net.ftp.FTPClient.listNames(FTPClient.java:2574) 

在服務器日誌中我看到下面的

(000032)9/16/2011 14:38:28 PM - (not logged in) (127.0.0.1)> Connected, sending welcome message... 
(000032)9/16/2011 14:38:28 PM - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.39 beta 
(000032)9/16/2011 14:38:28 PM - (not logged in) (127.0.0.1)> 220-written by Tim Kosse ([email protected]) 
(000032)9/16/2011 14:38:28 PM - (not logged in) (127.0.0.1)> 220 Please visit http://sourceforge.net/projects/filezilla/ 
(000032)9/16/2011 14:38:28 PM - (not logged in) (127.0.0.1)> USER reverb0253 
(000032)9/16/2011 14:38:28 PM - (not logged in) (127.0.0.1)> 331 Password required for reverb0253 
(000032)9/16/2011 14:38:28 PM - (not logged in) (127.0.0.1)> PASS ******** 
(000032)9/16/2011 14:38:28 PM - reverb0253 (127.0.0.1)> 230 Logged on 
(000032)9/16/2011 14:38:40 PM - reverb0253 (127.0.0.1)> disconnected. 

權當我碰到像client.storeFile(),服務器日誌斷開。我使用Apache的百科全書網3.0.1

回答

0

FTP打開另一個連接,當你做一個目錄列表或文件傳輸。有可能連接被防火牆或安全軟件阻止。這就是所謂的「數據通道」,確切的端口在會話期間進行協商。我希望看到任何一個端口或PASV數據通道打開之前immdiately服務器日誌。您可能需要使用Wireshark在客戶端上看到您要發送什麼。