`
IThead
  • 浏览: 429534 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java操作FTP时遇到的问题小结

    博客分类:
  • FTP
阅读更多
今天在做java开发FTP文件上传时,遇到了一些问题。现在项目完成了,有时间总结一下。我用的第三方jar是:etdftpj-1.4.5.jar。

问题一:java在获取FTP Client时,指定路径在Windows和Linux下的表示方式不同。
Windows FTP Server:"/folder";
Linux FTP Server:"\folder"。

问题二:FTP访问方式
FTP是仅基于TCP的服务,它使用两个端口,一个命令端口,一个数据端口。通常情况下,命令端口号21,数据端口号20.但是由于FTP的访问方式不同,数据端口号不一定是20。
1、主动模式


第一步:客户端的命令端口与FTP服务器端的命令端口21建立连接,并发送命令"PORT 1027";
第二步:FTP服务器的命令端口给客户端的命令端口回一个"ACK";
第三步:FTP服务器发起一个从它自己的数据端口20向客户端先前指定的数据端口20的连接;
第四步:客户端给FTP服务器回一个"ACK"。
2、被动模式(PASV)


第一步:客户端的命令端口与FTP服务器端的命令端口21建立连接,并发送命令"PASV";
第二步:FTP服务器返回一个命令"PORT 2024",告诉客户端用哪个端口侦听数据连接;
第三步:客户端初始化一个从自己的数据端口到FTP服务器指定的数据端口的连接;
第四步:FTP服务器给客户端回一个"ACK"。
总结:
主动FTP:
    命令连接:客户端 >1023端口 -> 服务器 21端口
    数据连接:客户端 >1023端口 <- 服务器 20端口
被动FTP:
    命令连接:客户端 >1023端口 -> 服务器 21端口
    数据连接:客户端 >1023端口 -> 服务器 >1023端口
下面是主动与被动FTP优缺点的简要总结:
    主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
    幸运的是,有折衷的办法。既然FTP服务器的管理员需要他们的服务器有最多的客户连接,那么必须得支持被动FTP。我们可以通过为FTP服务器指定一个有限的端口范围来减小服务器高位端口的暴露。这样,不在这个范围的任何端口会被服务器的防火墙阻塞。虽然这没有消除所有针对服务器的危险,但它大大减少了危险。

问题三:实现在FTP服务器上移动文件
rename(fileName, ../path/fileName);
  • 大小: 2.6 KB
  • 大小: 2.9 KB
0
0
分享到:
评论

相关推荐

    java操作ftp下载

    在Java编程中,FTP(File Transfer Protocol)是一个用于在计算机之间传输文件的标准协议。通过FTP,我们可以实现远程服务器上的文件上传、下载以及管理等操作。本教程将详细讲解如何使用Java来实现FTP文件的下载...

    java实现FTP服务器

    ### Java实现FTP服务器的关键知识点 在探讨如何使用Java实现FTP(File Transfer Protocol)服务器之前,我们首先需要理解FTP的基本概念及其工作原理。FTP是一种用于在网络上进行文件传输的标准协议,它支持上传...

    java实现ftp的所有操作

    本项目提供了一套完整的Java实现FTP操作的代码示例,包括上传、下载、删除服务器上的指定文件以及断点续传功能。以下是对这些功能的详细解释: 1. **FTP连接与登录**: 在进行任何FTP操作之前,首先需要建立一个...

    java操作ftp代码.rar_Java操作FTP_ftg客户端_ftp java_java ftp

    Java操作FTP服务器,连接FTP,上传文件,删除文件,下载文件

    java操作FTP各种例子

    Java操作FTP(File Transfer Protocol)是Java编程中的一项重要技能,尤其在开发涉及文件上传、下载、删除等网络操作的应用时。以下将详细介绍如何使用Java进行FTP的各种操作,并结合具体的代码示例进行讲解。 首先...

    java 连接 FTP 文件操作(上传,下载,删除,复制

    本文将详细讨论如何使用Java连接FTP(File Transfer Protocol)服务器,进行文件的上传、下载、删除以及复制等操作。 首先,Java通过`java.net`和`javax.net`包提供了FTP客户端的功能。主要依赖于`java.net....

    java ftp java ftp

    9. **异常处理**:在处理FTP操作时,应该捕获并处理可能抛出的FTPException和其他相关异常,确保程序的健壮性。 10. **配置设置**:FTPClient允许你设置一些配置参数,如超时时间、数据连接模式等,以适应不同的...

    java FTP server

    7. **日志和审计**:为了追踪服务器活动并解决潜在问题,FTP服务器应记录所有客户端交互,包括登录尝试、文件操作和其他命令。 在开发Java FTP Server时,可能还会用到一些开源库,例如Apache Commons Net提供了FTP...

    JAVA获取FTP文件列表

    本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`,该类提供了一系列功能来与FTP服务器交互,包括连接到服务器、上传文件、下载文件、获取文件列表、删除文件和目录以及关闭连接等操作。 #### 二、`...

    Java实现FTP文件上传和下载

    在进行FTP操作时,确保遵循安全最佳实践,例如使用SSL/TLS加密连接,避免明文传输敏感信息,及时断开无用连接,并限制FTP用户的权限。此外,如果可能,应考虑使用SFTP(SSH文件传输协议),它比FTP更安全。 总结,...

    Java解析FTP服务器文本文件

    Java解析FTP服务器文本文件是指使用Java语言连接FTP服务器,上传、下载、递归目录遍历等基本操作的集合。在这个过程中,我们需要引入相关的jar包,例如cpdetector.jar、jchardet-1.0.jar、antlr.jar、commons-...

    java ftp客户端,服务端

    在编写Java FTP程序时,需要注意错误处理和异常处理,确保在网络不稳定或服务器响应异常时能够优雅地处理问题。同时,为了提高性能和安全性,可能还需要考虑使用多线程、SSL/TLS加密以及限制并发连接数等策略。 总...

    JAVA 操作FTP的工具类,上传,下载,删除功能都有了。

    为了方便开发者操作FTP服务器,Java提供了一些内置的库,如`java.net.FTPSClient`和`org.apache.commons.net.ftp.FTPClient`。在这个场景中,我们有一个工具类,它包含了FTP的上传、下载和删除功能,这对于任何需要...

    基于Java的FTP客户端源代码

    Java FTP客户端源代码是用于通过Java编程语言与FTP(文件传输协议)服务器进行交互的程序。FTP是一种在互联网上常用的标准文件传输协议,允许用户上传、下载和管理远程服务器上的文件。Java提供了一系列的API,如`...

    java操作FTP工具类

    java操作FTP工具类:实现基本断点上传下载、实现上传下载进度汇报、实现中文目录创建及中文文件创建,添加对于中文的支持

    java 读取Ftp指定位置的文件解析并入库

    标题 "java 读取Ftp指定位置的文件解析并入库" 涉及到的是使用Java编程语言通过FTP(File Transfer Protocol)协议从远程服务器上下载文件,然后对下载的文件进行解析,并将解析得到的数据存储到数据库中。...

    java实现ftp上传jar包

    以上就是关于"java实现ftp上传jar包"的相关知识点,涵盖了FTP协议、相关库的使用、JAR文件的处理以及基本的Java FTP操作。在实际项目中,你可能还需要考虑其他因素,如连接超时、重试策略、文件权限管理等。

    java 读取FTP服务器文件

    在Java编程环境中,读取FTP(File Transfer Protocol)服务器上的文件是一项常见的任务,尤其是在Web服务器和Linux系统环境下。FTP提供了一种可靠的方式来传输文件,使得应用程序可以远程访问和操作存储在FTP服务器...

    java实现Ftp批量下载文件及解压

    通过Java实现FTP批量下载文件以及解压的功能,可以极大地提高工作效率,特别是在处理大量数据时。以下是一份详细的步骤介绍: 首先,我们需要引入Java的FTP客户端库,如Apache Commons Net库。这个库提供了丰富的...

Global site tag (gtag.js) - Google Analytics