FTPClient报“Connection refused”的另一种情况

         使用Apache的commons-net包构建了一个FTP服务器,并使用包里的FTPClient远程连接FTP服务器。

        使用过程中,其中一个客户端应用程序,遇到了listFiles不返回,retrieveFileStream后,后续请求命令无效等一系列问题。第一个问题,将ftp协议设为被动模式即可,即调用enterLocalPassiveMode方法;第二个问题,需要在调用该方法返回数据流并关闭流后,调用completePendingCommand,确保文件读取动作结束后,其它命令可用。问题二可能在不同的ftp服务器上表现不一致,曾有过非commons-net构建的FTP服务器不需要调用completePendingCommand也能够继续与FTP服务器保持交互的实践。

        另外一个客户端应用程序能够正常登录FTP服务器,但只要调度listFiles就会返回"Connection refused"报错,调度list等其它命令会返回各种状态码,很不稳定。遍试以上多种处理方法,该问题仍无法解决。仔细分析两个客户端程序的Jar包依赖后发现,可以正常工作的客户端的jar包版本为3.8.0,而无法正常工作的jar包版本为3.6。服务器端的jar包版本也是3.6。统一替换为3.8.0版后,所有问题均被修复。

        目前看,未来,当遇到类似FTPClient不明所以的问题时,可考虑jar包版本的差异问题,作为一个可行的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值