2016-02-19 161 views
1

我使用Apache公共庫中的FTP連接到遠程服務器。但我無法連接到該server..i得到了異常:使用JAVA連接到遠程服務器的FTP連接

java.net.ConnectException:連接超時:在java.net.DualStackPlainSocketImpl.connect0(本機方法) 是java連接 。 net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在java.net。 AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocket Impl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.commons.net.SocketClient.connect(SocketClient.java:188) at org。在de.download.Info4c.main(Info4c.java:67)

這是我的代碼:

FTPSClient client = new FTPSClient(false); 
    client.connect("<IP>",990);  
    int reply = client.getReplyCode(); 
    if (FTPReply.isPositiveCompletion(reply)) { 
     if(client.login(user, pass)){ 
      // Set protection buffer size 
      client.execPBSZ(0); 
      // Set data channel protection to private 
      client.execPROT("P"); 
      // Enter local passive mode 
      client.enterLocalPassiveMode(); 
     } 
    } 
+0

應該被替換爲您嘗試連接的服務器的地址。您是否爲了發佈問題而自己將其掩蓋起來,還是實際上*在您的程序中使用了「」? – Neil

+0

@Neil 標籤包含我的遠程服務器IP。我沒有任何名稱,只是IP,所以我想連接到的服務器上運行的是Windows Server 2012,它只是一個遠程服務器。 – user3515460

+1

總是一個好主意,試着去做'ping '來測試服務器是否存在。如果它響應,請按照@duffymo的建議檢查端口。否則,你的問題是,從你的電腦,你看不到那臺服務器。這並不一定意味着服務器* * *!它可能是防火牆或其他因素。 – Neil

回答

0

如果遠程服務器位於防火牆之後,也許你應該使用正確的代理來訪問它。你有沒有在你的互聯網選項中的系統代理?然後,將JVM配置爲通過標準Java networking properties使用它。

+0

就是這樣!我已經在防火牆中打開一個端口,現在它可以工作..THX – user3515460