使用java.net -Connection在Java中创建FTP客户端:connect

时间:2015-10-18 09:26:24

标签: java ftp network-programming client

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class FTPClient {
protected Socket sk;
protected BufferedReader in;
protected BufferedWriter out;

public static void main (String [] args){
    FTPClient fc1 = new FTPClient("sitename.org",21);
    fc1.Login("user", "password!");
}

FTPClient(String server, int port){
    try{
        this.sk = new Socket(server,port);
        this.in = new BufferedReader(new InputStreamReader(sk.getInputStream()));
        this.out = new BufferedWriter(new OutputStreamWriter(sk.getOutputStream()));

        String response = in.readLine();
        System.out.println(response);
    }
    catch(Exception e){
        System.out.println(e);
    }

}

public boolean Login(String user, String pass){
    boolean success = false;
    try{
        sendOut("USER " + user);
        sendOut("PASS " + pass);
        success = true;
        System.out.println("Waiting for response");
        String response = in.readLine();
        System.out.println(response);

    }
    catch(Exception e){
        System.out.println("Login Failure");
        success = false;
    }

    return(success);
}

public void sendOut(String command) throws Exception{
    if (sk == null){
        throw new Exception("Client is not connected!");
    }

    try{
        out.write(command + "\r\n");
        out.flush();
    }
    catch(Exception e){
        System.out.println(e);
    }
}

}

您好,我将此代码编写为客户端,尝试连接并使用FTP连接登录服务器。但是,我一直收到此错误消息, java.net.ConnectException:连接被拒绝:连接 有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

您尝试连接到SSH服务器,因此您收到了意外的回复。 defualt FTP端口是21。

答案 1 :(得分:1)

好的...我的学校的服务器没有设置FTP并在端口21上打开。所以,我在21号端口的服务器上启动了FTP,现在正确连接。谢谢你帮助我解决问题。

经验教训:FTP通常在端口21上。但是,如果存在连接问题,应通过登录并使用“sudo netstat netstat -lntu”命令检查服务器是否正在侦听端口21。如果FTP甚至没有打开,可以通过运行“sudo apt-get install vsftpd”安装它。

感谢大家帮我解决问题。