JAVA编写FTP连接报错java.net.ConnectException: Connection refused: connect FTP

代码如下:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import sun.net.TelnetOutputStream;
import sun.net.TelnetInputStream;
import sun.net.ftp.FtpClient;

public class FtpTest {
String localfilename;

String remotefilename;

FtpClient ftpClient;

// server:服务器名字
// user:用户名
// password:密码
// path:服务器上的路径
public void connectServer(String ip, int port,String user
, String password,String path) {

try {
ftpClient = new FtpClient();
ftpClient.openServer(ip,port);
ftpClient.login(user, password);
System.out.println("login success!");
if (path.length() != 0) ftpClient.cd(path);
ftpClient.binary();
} catch (IOException ex) {
System.out.println("not login");
System.out.println(ex);
}
}

public void closeConnect() {
try {
ftpClient.closeServer();
System.out.println("disconnect success");
} catch (IOException ex) {
System.out.println("not disconnect");
System.out.println(ex);
}
}

public static void main(String agrs[]) {

FtpTest ft = new FtpTest();
//以连接本机做测试
ft.connectServer("127.0.0.1",21, "实际的账号", "实际密码","/");
}
}
错误提示:

not login
java.net.ConnectException: Connection refused: connect

你用的FTPClient引入不对吧,我们项目上都是用的

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

下面是我们项目上用到的FTP的实现代码(FTP需要先连接,再登录,之后就是校验登录是否成功),具体代码如下:

/**
  * 获取FTPClient对象
  *
  * @param ftpHost FTP主机服务器
  * @param ftpPassword FTP 登录密码
  * @param ftpUserName FTP登录用户名
  * @param ftpPort FTP端口 默认为21
  * @return FTPClient
  * @throws Exception
  */
 public static FTPClient getFTPClient(String ftpHost, String ftpUserName,
   String ftpPassword, int ftpPort) throws Exception {
  try {
   FTPClient ftpClient = new FTPClient();
   ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器
   ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器
   if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
    logger.error("未连接到FTP,用户名或密码错误!");
    ftpClient.disconnect();
    return null;
   } else {
    logger.info("FTP连接成功!");
    return ftpClient;
   }
  } catch (SocketException socketException) {
   logger.error("FTP的IP地址可能错误,请正确配置!");
   throw socketException;
  } catch (IOException ioException) {
   logger.error("FTP的端口错误,请正确配置!");
   throw ioException;
  }
 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-26
应该是你Tomcat的服务端口被占用了,一般情况都是你之前开过Tomcat,但忘了关闭,或者没成功关闭导致的,你可以试着打开任务管理器,把java和Tomcat的进程都结束,然后重新启动Tomcat,或者直接重启电脑也行。如果这样做了还不行,那有可能是其
第2个回答  2018-11-08
说明服务器拒绝了你的连接请求。
一、请检查服务器,地址,端口等参数。
二、使用正常的ftp 客户端,是否可以正常连接到服务器。

三、如果第二步不行,就请排查服务器端的问题,如防火墙等。
第3个回答  2018-10-30
拒绝连接,先检查ip地址是不是通的,然后再检查用户名和密码是否正确。
第4个回答  2019-01-07
这不是写的登入验证失败么。。 要么是你本机没有打开FTP服务端,要么就是用户名和密码不匹配。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网