FTP java.net.ConnectException: Connection refused: connect

来源:互联网 发布:mac版同花顺使用技巧 编辑:程序博客网 时间:2024/05/22 15:51


 FTP    java.net.ConnectException: Connection refused: connect


排查问题如下: 一般是端口写错引起的 


(1):利用linux命令查看端口  netstat -auntp | grep 21


Last login: Fri Oct 28 12:12:24 2016 from 116.226.185.223[root@localhost ~]# netstat -auntp | grep 21tcp        0      0 0.0.0.0:2121                0.0.0.0:*                   LISTEN      20143/vsftpd        tcp        0      0 :::3306                     :::*                        LISTEN      2184/mysqld         tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33699      ESTABLISHED 2184/mysqld         tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33700      ESTABLISHED 2184/mysqld         tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33661      ESTABLISHED 2184/mysqld         tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33688      ESTABLISHED 2184/mysqld         tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33625      ESTABLISHED 2184/mysqld         tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33687      ESTABLISHED 2184/mysqld         tcp        0      0 ::ffff:127.0.0.1:3306       ::ffff:127.0.0.1:33702      ESTABLISHED 2184/mysqld         [root@localhost ~]# 


(2): 如果连接后  读取数据为空 则  做如下修改:


ftp.enterLocalPassiveMode();//如果不加这个读取数据会为空FTPFile[] fs = ftp.listFiles();



(3):完整代码如下:


public  void ReadFileFromSftp() { String path="uploads//";String fileName="20161012buy.txt"; String result=""; FTPClient ftp = new FTPClient();  try { int reply; //1.连接服务器 ftp.connect(server,2121); //2.登录服务器 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器 ftp.login(user, password); //3.判断登陆是否成功 reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); } //4.指定要下载的目录 ftp.changeWorkingDirectory(path);// 转移到FTP服务器目录 //5.遍历下载的目录 ftp.enterLocalPassiveMode(); FTPFile[] fs = ftp.listFiles(); for (FTPFile ff : fs) { //解决中文乱码问题,两次解码 byte[] bytes=ff.getName().getBytes("iso-8859-1"); String fn=new String(bytes,"utf8"); if (fn.equals(fileName)) { InputStream  inputStream=ftp.retrieveFileStream(ff.getName()); result = IOUtils.toString(inputStream); }  } ftp.logout(); } catch (IOException e) { e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException ioe) { } } }  System.out.println("result"+result);  }}


1 0
原创粉丝点击