java ftp 心跳_java实现ftp连接池

本文介绍了如何使用Java实现FTP连接池,通过预先创建好的FTP连接池提高上传效率,减少资源浪费。内容包括配置FTP服务、创建FtpClientConfig、FtpClientFactory、FtpClientPool以及实现心跳检测的FtpClientKeepAlive,确保长连接的有效性。
摘要由CSDN通过智能技术生成

前言

由于工作需要使用到ftp服务,一开始是每次建立ftp连接,上传文件成功后,再释放连接,后来发现这个方法太浪费资源和时间了,就想到了使用ftp连接池的方式实现,这样,预先创建好ftp连接池,需要上传的时候从池子取一个连接,上传成功后再放回池子即可,省下了创建和释放ftp连接的时间。

实现

ftp服务的配置文件

在config.properties配置好ftp服务

ftp.ip=127.0.0.1

ftp.username=root

ftp.password=root

ftp.port=21

FtpClientConfig

FtpClientConfig是用于读取config.properties的一个实体类

public class FtpClientConfig {

private String host;

private int port;

private String username;

private String password;

...

FtpClientFactory

FtpClientFactory可以理解为一个工厂类,用于生成ftp连接、销毁ftp连接以及检测ftp连接是否有效。

生成ftp连接

在生成ftp连接的时候,我们可以设定连接的超时时间等,ftp有主动模式和被动模式两种模式。

主动模式:FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令。服务器接收到命令后,会用其本地的FTP数据端口(通常是20)来连接客户端指定的端口N+1,进行数据传输

被动模式:FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,同时会开启N+1号端口。然后向服务器发送PASV命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输。

public FTPClient makeClient() throws Exception{

FTPClient ftpClient = new FTPClient();

ftpClient.setConnectTim

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值