java ftpclient 主动模式_Java中apache下面FtpClient主动模式和被动模式

最近在做ftp文件上传的时候,开发测试环境上传都没有问题,但是在开发环境缺无法上传,但是也没有报错,纠结了老久。最后看到网上有说FtpClient有主动模式和被动模式之分,而后就处理了。

e9a225f0fb9d265033542bb1e0caa481.png

FTPClient连接FTP服务的时候,Java中org.apache.commons.net.ftp.FTPClient默认用的应该是主动模式。所谓主动模式:就是指用户端连接服务端的时候,告诉服务端,我们之间要进行通讯,数据交换。我申请开拓一个端口,专门使用于我们之间的通信,也即C(client)端主动向S(Server)端发起的请求。被动模式就是指,一开始服务一起来,S端变开启一个端口告诉C端,我们之间的通讯就在这个端口下。也就C端被动的接受服务端。

在文件上传处加上如下代码:ftpClient.enterLocalPassiveMode();

调使用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,由于ftp server可能每次开启不同的端口来传输数据,但是在linux上,因为安全限制,可能某些端口没有开启,所以就出现阻塞。同时,在下载的地方也需要开启被动模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值