org.apache.commons.net.ftp.FTPClient 下载文件提示Software caused connection abort: recv failed

简介: 今天在使用FTPClient下载文件时,登录成功了,但是提示下图所示的错误信息:   出现这个问题,本以为设置的读取文件目录不对,尝试修改多次无果。为了排除路径的问题,在firefox中安装了插件“FireFTP”,连接上之后,可以正常下载,于是该问题排除。

今天在使用FTPClient下载文件时,登录成功了,但是提示下图所示的错误信息:

异常信息

 

出现这个问题,本以为设置的读取文件目录不对,尝试修改多次无果。为了排除路径的问题,在firefox中安装了插件“FireFTP”,连接上之后,可以正常下载,于是该问题排除。

后来在http://blog.csdn.net/wangjinwei6912/article/details/6603152 看到这位朋友的提示防火墙的问题,于是打开系统的防火墙,发现系统的防火墙都是开着的,如下图所示:

开着的系统防火墙

尝试把防火墙关闭,再次运行程序,发现文件能够正常下载了。如下图所示:

文件下载成功

此问题解决。

 

更深层次解析:

FTP 的连接模式有两种:主动模式和被动模式,我们的程序是采用主动模式来连接到ftp服务器的。(主动模式和被动模式的区别请参照:http://jackiechen.blog.51cto.com/196075/193883/),我们摘抄关于主动模式的相关说明如下:

      主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。

    针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:    

    1. 任何大于1024的端口到FTP服务器的21端口。(客户端初始化的连接) 

    2. FTP服务器的21端口到大于1024的端口。 (服务器响应客户端的控制端口)

    3. FTP服务器的20端口到大于1024的端口。(服务器端初始化数据连接到客户端的数据端口)

    4. 大于1024端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口)

从第3条,可以看出服务器端时会主动向客户端进行连接的,所以,本地需要关闭防火墙才能完成数据的下载。

目录
相关文章
|
9月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
1369 3
|
6月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
1603 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
8月前
.NET Framework 3.5离线安装包合集下载
本文介绍了如何获取和安装.NET Framework运行库离线合集包。用户可通过提供的链接下载安装包,安装过程简单,按提示逐步操作即可完成。安装时可选择所需版本,工具会自动适配架构,无需手动判断,方便高效。
6509 0
|
10月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
354 0
|
存储 XML 开发工具
【Azure Storage Account】利用App Service作为反向代理, 并使用.NET Storage Account SDK实现上传/下载操作
本文介绍了如何在Azure上使用App Service作为反向代理,以自定义域名访问Storage Account。主要内容包括: 1. **设置反向代理**:通过配置`applicationhost.xdt`和`web.config`文件,启用IIS代理功能并设置重写规则。 2. **验证访问**:测试原生URL和自定义域名的访问效果,确保两者均可正常访问Storage Account。 3. **.NET SDK连接**:使用共享访问签名(SAS URL)初始化BlobServiceClient对象,实现通过自定义域名访问存储服务。
233 0
|
Linux C# Windows
.NET使用MiniWord高效生成Word文件
.NET使用MiniWord高效生成Word文件
548 12
Visual Studio 快速分析 .NET Dump 文件
【11月更文挑战第10天】.NET Dump 文件是在 .NET 应用程序崩溃或出现问题时生成的,记录了应用程序的状态,包括内存对象、线程栈和模块信息。通过分析这些文件,开发人员可以定位和解决内存泄漏、死锁等问题。在 Visual Studio 中,可以通过调试工具、内存分析工具和符号加载等功能来详细分析 Dump 文件。此外,还可以使用第三方工具如 WinDbg 进行更深入的分析。
1089 1
|
网络协议 Linux
搭建FTP报错:Job for vsftpd.service failed because the control process exited with error code. See
搭建FTP报错:Job for vsftpd.service failed because the control process exited with error code. See
1203 3
.NET 压缩/解压文件
【9月更文挑战第5天】在 .NET 中,可利用 `System.IO.Compression` 命名空间进行文件的压缩与解压。首先引入相关命名空间,然后通过 GZipStream 类实现具体的压缩或解压功能。下面提供了压缩与解压文件的方法示例及调用方式,便于用户快速上手操作。
239 6
|
Java Windows 容器
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
316 4

推荐镜像

更多
下一篇
开通oss服务