2016-04-11 5 views
0

Ich entwickle FTP-Programm auf JAVA. Ich benutze Apache Commons Net Library. Meine Codes sind unten.Verbinden mit Localhost mit Java FTP

import java.io.IOException; 
 
import org.apache.commons.net.ftp.FTPClient; 
 
import org.apache.commons.net.ftp.FTPReply; 
 
public class ServerClass { 
 
    private static void showServerReply(FTPClient ftpClient) { 
 
     String[] replies = ftpClient.getReplyStrings(); 
 
     if (replies != null && replies.length > 0) { 
 
      for (String aReply : replies) { 
 
       System.out.println("SERVER: " + aReply); 
 
      } 
 
     } 
 
    } 
 
    public static void main(String[] args) { 
 
     String server = "127.0.0.1"; 
 
     int port = 80; 
 
     String user = "root"; 
 
     String pass = "root"; 
 
     FTPClient ftpClient = new FTPClient(); 
 
     try { 
 
      ftpClient.connect(server, port); 
 
      showServerReply(ftpClient); 
 
      int replyCode = ftpClient.getReplyCode(); 
 
      if (!FTPReply.isPositiveCompletion(replyCode)) { 
 
       System.out.println("Operation failed. Server reply code: " + replyCode); 
 
       return; 
 
      } 
 
      boolean success = ftpClient.login(user, pass); 
 
      showServerReply(ftpClient); 
 
      if (!success) { 
 
       System.out.println("Could not login to the server"); 
 
       return; 
 
      } else { 
 
       System.out.println("LOGGED IN SERVER"); 
 
      } 
 
     } catch (IOException ex) { 
 
      System.out.println("Oops! Something wrong happened"); 
 
      ex.printStackTrace(); 
 
     } 
 
    } 
 
}

Aber ich mein localhost nicht verbinden kann. Ich möchte meinen localhost anmelden und meine Datei sehen. Meine Fehler sind unten.

Oops! Something wrong happened 
 
java.net.ConnectException: Connection refused: connect 
 
\t at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
 
\t at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
 
\t at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
 
\t at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
 
\t at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
 
\t at java.net.PlainSocketImpl.connect(Unknown Source) 
 
\t at java.net.SocksSocketImpl.connect(Unknown Source) 
 
\t at java.net.Socket.connect(Unknown Source) 
 
\t at org.apache.commons.net.SocketClient.connect(SocketClient.java:188) 
 
\t at org.apache.commons.net.SocketClient.connect(SocketClient.java:209) 
 
\t at com.emrecanoztas.ftp.ServerClass.main(ServerClass.java:22)

können Sie mir jemand helfen? Dank ..

+1

1. Sie verwenden den TCP-Port 80, die standardmäßig http ist. –

+0

2. Führen Sie den FTP-Server lokal aus? –

+0

Ja, ich benutze XAMPP, also gibt es einen localhost und läuft – Jsawyer

Antwort

0

Versuchen Sie die Einstellungen unten.

 String server = "ftp.icm.edu.pl"; 
 
     int port = 21; 
 
     String user = "anonymous"; 
 
     String pass = "[email protected]";

+0

hey, wenn ich Ihre Parameter eingeben, es funktioniert :))) – Jsawyer

+0

Es ist ein FTP-Server läuft. : D – Konrad

1

Fragen:

  • Gibt es einen FTP-Server läuft?
  • Gibt es eine Nachricht im FTP-Serverprotokoll über die Verbindungsanforderung?
  • Erlaubt der FTP-Server Verbindungen von localhost?
  • Hört der FTP-Server auf localhost oder sollten Sie die öffentliche IP/Name des Computers verwenden? (überprüfen Sie mit netstat)
+0

Es gibt keinen FTP-Server auf meinem Computer. Ich möchte nur meine localhost verbinden. Ist es möglich? Oder muss ich FTP-Server installieren? – Jsawyer

+0

Nein, ohne FTP-Server Ihr Code wird nicht funktionieren. Sie können jedoch versuchen, einen anderen Server. Versuchen Sie Port = 21; Server = "ftp.icm.edu.pl"; Benutzer = "anonymous"; pass = "[email protected] "; –

+0

Sicher, Sie müssen einen gültigen Server für die Verbindung bereitstellen. Das Programm bekommt sonst keine Antwort. Es ist wie t o einen Brief an eine Adresse senden, die nicht existiert. – Konrad