如何搭建ftp服务器步骤,FTP环境搭建及客户代码调用公共方法封装

 2023-09-25 阅读 10 评论 0

摘要:一、背景 大型系统架构往往被分解为多个独立可运行的组件, 以满足性能、可靠性、可扩展性的需求。多个组件间的数据交互往往采用两种方式:小量数据通过Sock函数、RMI、WebService等接口方式传递;大量采用文件方式传递。 采用文件传递数据有两种方式:通过

一、背景

大型系统架构往往被分解为多个独立可运行的组件, 以满足性能、可靠性、可扩展性的需求。多个组件间的数据交互往往采用两种方式:小量数据通过Sock函数、RMI、WebService等接口方式传递;大量采用文件方式传递。
采用文件传递数据有两种方式:通过Windows的NFS系统,文件共享。采用FTP/SFTP做文件上传、下载。本文讲解采用FTP服务传递文件时,FTP服务器环境搭建及公共代码组件。

二、FTP Server环境搭建

2.1 下载开源组件Apache Server 1.0.6版本

到官方网站下载http://mina.apache.org/ftpserver-project

2.2 在users.properties配置文件添加用户名和密码

2.3 在ftpd-typical.xml设置端口,密码是否加密(本配置文件清除密码加密)

2.4 运行FTP Server

命令行执行:start “apache ftp server….” bin\ftpd.bat res\conf\ftpd-typical.xml

三、FTP客户端访问公共组件

3.1 添加commons-net-3.3.jar包到Eclipse.

3.2 公共基础类

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;public class FTPUtility { private String ftpIP = ""; private int ftpPort = 0; private String userName = ""; private String passWord = ""; FTPClient client = null; /** * 构造函数,初始化连接FTP服务器的参数。 * @param ftpIP 服务器IP地址 * @param ftpPort 服务器端口 * @param userName 登陆用户名 * @param passWord 登陆密码 */ public FTPUtility(String ftpIP, int ftpPort, String userName, String passWord) { this.ftpIP = ftpIP; this.ftpPort = ftpPort; this.userName = userName; this.passWord = passWord; } /** * 连接FTP服务器。 * @return true: 连接成功; false:连接失败 */ public boolean connet() { // 1、连接FTP服务器 client = new FTPClient(); try { client.connect(ftpIP, ftpPort); client.login(userName, passWord); // 文件按二进制传输,按ASCII码传输EXCEL文件会被损坏。 client.setFileType(FTPClient.BINARY_FILE_TYPE); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 2、检验返回码,是否连接成功。 int replyCode = client.getReplyCode(); if (!FTPReply.isPositiveCompletion(replyCode)) { try { client.disconnect(); } catch (IOException e) { e.printStackTrace(); } System.err.println("FTP server refused connection."); return false; } return true; } /** * 上传文件到FTP服务器 * @param localFilePath 待上传的本地文件完整路径 * @param ftpFileName 上传后保存到FTP服务器的名称(一般和本地文件名一致) * @throws IOException IO异常 */ public void upLoadFile(String localFilePath, String ftpFileName) throws IOException { FileInputStream localIn = new FileInputStream(localFilePath); client.storeFile(ftpFileName, localIn); localIn.close(); } /** * 从FTP服务器下载文件到本地。 * @param ftpFileName 所下载文件在FTP服务器上的名称 * @param localFilePath 下载后文件保存的完整路径(文件名一般和FTP上保存的文件一致) * @throws IOException IO异常 */ public void downLoadFile(String ftpFileName, String localFilePath) throws IOException { FileOutputStream localOut = new FileOutputStream(localFilePath); client.retrieveFile(ftpFileName, localOut); localOut.close(); } /** * 关闭FTP连接 * @throws IOException */ public void disconnet() throws IOException { client.logout(); } }
  • 1

四、客户端测试代码

public class TestMain 
{public static void main(String[] args) { FTPUtility ftp = new FTPUtility("10.70.60.60", 2121, "admin", "admin"); if(!ftp.connet()) { return; } try { ftp.upLoadFile("d:/temp/IBMS_NE_T.txt", "IBMS_NE_T.txt"); ftp.upLoadFile("d:/temp/2保修合同4.xlsx", "2保修合同4.xlsx"); ftp.downLoadFile("IBMS_NE_T.txt", "d:/temp/IBMS_NE_T_new.txt"); ftp.downLoadFile("2保修合同4.xlsx", "d:/temp/2保修合同4_new.xlsx"); ftp.disconnet(); } catch (IOException e) { e.printStackTrace(); } } }

转载于:https://www.cnblogs.com/telwanggs/p/7448519.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/96317.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息