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:连接被拒绝:连接 有人可以帮助我吗?
答案 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”安装它。
感谢大家帮我解决问题。