`
qdpurple
  • 浏览: 276699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java通过ftp(ssl)list文件问题

阅读更多

已知ftp服务器为: unix系统 ,

连接 : ftp  ssl ,

implicit  

通过 username/password 登陆.

ftp根目录下有个文件夹maibox , 用程序实现对其中一个文件下的文件 读取操作.

 

 

一 ,ftp 被动模式(PASV)下连接过程:

1. 客户端首先要用PASV命令告诉服务器,准备传数据了
2. 
服务端收到PASV后,在本地listen一个端口,并返回2xx 正确相应信息 + listen的端口
3. 
客户端收到响应后,发送STOR RETR LIST 等告知服务端 它想要的数据
4. 
服务端收到命令后,准备相关数据,完毕后发送150 响应△程序已执行到此
5. 
客户端收到正确响应后,客户端主动发起一个本地随机端口至服务端listen的端口的 TCP连接, 然后服务器将数据在此TCP连接塞给客户端。怎么用代码实现???
6. 
服务端塞数据完毕后,在命令端口中返回2xx 正确响应。
7. 
工作结束,关闭中建立的临时TCP连接。 命令端口的连接仍然保持,服务端等待客户端命令
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

 

尝试使用@3 方法 实现连接 ?出现问题:

 

程序实现

 

 

 

....

    connectSFTPServer();  //连接server 成功

logger.info("sftpClient.pasv() :..........." + sftpClient.pasv()); //进入pasv 模式

 

       String repAddressInfo = sftpClient.getReplyString(); //获取server 返回的信息

 

PlatformABNSFTPConnectorTest.extractHostInfo(repAddressInfo); //自定义方法 提取返回信息中的ip 和port 放入变量hostName,   ftpport:

  sftpClient.list(); //列出文件

 

 

 //@2       String[] folderNames = sftpClient.listNames(); //listNames()

 

 

        InetAddress host;

host = InetAddress.getByName(hostName); //sever返回的ip信息和端口 ip,   ftpport:

sftpClient.connect(host, ftpPort); //@3 新建一个tcp连接

 

三 分析

 

  使用的是FTPSClient,包 org.apache.commons.net.ftp.FTPSClient;

可以连接成功,切换目录上传文件成功,就是list和下载文件出错,

 

1.尝试使用list(),在控制台报错

 

org.apache.commons.net.MalformedServerReplyException: Could not parse response code.

Server Reply: -r--r--r--   1 ABNNSOUT_ enterprise    1 Nov 25 21:52 

:绿色是服务器端的一个文件,服务器为unix系统, 但报错显示格式错误?查看源代码知解析返回信息读取信息时发生NumberformatException引起的.

 

 

 

2.通过listNames()  见代码@2

报错: java.net.SocketException: Connection reset

...无法解决

 

 

 

分享到:
评论

相关推荐

    java 读取FTP服务器文件

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

    java定时从ftp服务器更新相关文件

    Java定时从FTP服务器更新相关文件是一项常见的任务,特别是在自动化数据同步和备份的场景中。这里主要涉及的技术点包括FTP协议、Java编程以及文件系统操作。本文将深入探讨这些知识点,并提供一个基于`ftp4j`库的...

    Java实现ftp文件传输

    3. 发送FTP命令,如`USER`、`PASS`进行身份验证,`CWD`改变工作目录,`LIST`列出目录内容,`RETR`下载文件,`STOR`上传文件等。 4. 解析服务器返回的响应码,根据响应码执行相应的操作。 5. 使用输入流读取服务器...

    FTP 文件传输 基于JAVA的网络编程

    一旦建立连接,服务器需要读取客户端发送的FTP命令,如`USER`、`PASS`进行身份验证,`CWD`改变当前工作目录,`LIST`获取目录列表,`STOR`和`RETR`用于文件上传和下载。Sun.net包中的`FtpServer`类或第三方库如Apache...

    FTP文件管理管理模块 java实现

    FTP文件管理管理模块在Java中的实现涉及到多个关键知识点,涵盖了网络通信、文件处理以及多线程编程。以下是对这些知识点的详细阐述: 1. FTP(File Transfer Protocol)协议:FTP是一种用于在网络上进行文件传输的...

    Java开发FTP客户端

    通过以上知识点,我们可以构建一个功能完备的Java FTP客户端,实现文件的上传、下载以及目录管理等功能,满足日常的文件传输需求。在开发过程中,要注重代码的可读性、可维护性和安全性,以适应不同的使用场景。

    java编写FTP文件管理程序

    在《Java开发典型模块大全》这本书中,这个FTP文件管理程序可能包含了以上所有功能的示例代码,通过阅读和学习这些代码,你可以深入理解如何在实际项目中应用FTP协议和Java网络编程技术。此外,还可以学习到异常处理...

    ftp.zip_ftp_java ftp_java 文件传输_文件传输

    在Java编程语言中,可以通过实现FTP客户端来实现文件的上传、下载和其他相关操作。本资料包提供了一个简单的FTP Java源代码示例,帮助开发者理解和应用FTP文件传输。 在Java中,通常使用`java.net`和`java.io`库来...

    java实现ftp自动上传文件

    本文将详细讲解如何使用Java实现FTP自动上传整个磁盘的文件,包括目录结构,并介绍如何通过JTextArea展示Log4j日志信息以及命令行交互。 首先,我们需要一个第三方库来处理FTP通信。在Java中,Apache Commons Net库...

    FTP.rar_FTP JAVA 客户端_ftp_ftp java_ftp java_java ftp

    3. **命令交互**:FTP使用一系列命令来控制文件传输,如`LIST`列出目录,`RETR`获取文件,`STOR`存储文件,`CWD`改变当前工作目录等。 4. **数据传输**:FTP传输文件时,可以采用ASCII或二进制模式。ASCII模式适用...

    java搭建ftp服务器

    此外,还需要考虑如何处理文件系统操作,如读取和写入文件,以及错误处理和安全性问题,例如使用 SSL/TLS 加密连接。对于更复杂的场景,可能还需要支持 PASV 模式以允许客户端选择数据连接的端口,以及支持断点续传...

    javaftp.rar_JAVAFTP_ftp_ftp源码_java_java ftp

    `javaftp.txt`可能是具体的FTP源码示例,你可以通过阅读和分析这个文件来了解FTP客户端的实现细节。 总的来说,理解和实现Java FTP需要对网络通信、文件I/O和异常处理有深入的理解,同时,熟悉FTP协议和使用相应的...

    ftp.zip_FTP客户端程序_ftp_ftp java_ftp客户端 java_java ftp客户端

    2. **FTP命令**:Java FTP客户端通过`java.net.Socket`发送FTP命令,如`USER`(提供用户名)、`PASS`(提供密码)进行身份验证,`CWD`(改变工作目录),`LIST`(列出目录内容),`RETR`(下载文件),`STOR`(上传...

    JAVA FTP 文件传输 服务端 客户端

    总之,Java FTP文件传输涉及到服务端的构建和客户端的实现,两者都需要理解FTP协议的工作原理和Java相关的库。通过合理地利用Apache Commons Net等库,我们可以方便地实现FTP功能,满足文件的上传、下载和管理需求。...

    ftp-rfc959.rar_FTP RFC java_ftp_ftp java_ftp java_java ftp

    Java FTP库通常提供了许多方便的方法来执行FTP操作,如连接到服务器、登录、上传文件、下载文件、改变目录等。在提供的"ftp-rfc959.rar"压缩包中,包含的源代码可能就是实现了这些功能的Java程序。这些源代码已经...

    java 实现ftp 服务器

    Java 实现FTP服务器是一项常见的编程任务,这通常涉及到网络编程和文件传输协议的理解。FTP(File Transfer Protocol)是一种用于在互联网上传输文件的标准协议。在Java中实现FTP服务器,我们可以利用Java的内置类库...

    FTP客户端Java类库 ftp4j

    3. **目录操作**:`ftp4j`提供了`changeWorkingDirectory()`用于切换当前工作目录,`printWorkingDirectory()`获取当前目录,以及`listDirectories()`和`listFiles()`获取目录列表和文件列表。 4. **文件上传与下载...

    Ftp.rar_ftp_ftp 文件传输_ftp文件传输_文件传输界面_界面端传输

    FTP(File Transfer Protocol)是一种基于TCP/IP协议的网络协议,用于在网络上进行文件...通过分析Ftp.java源代码,可以深入了解FTP客户端的实现细节,如如何建立连接、发送命令、处理响应以及实现文件的上传和下载。

    用Java实现FTP服务器 .rar_FTP服务器_ftp_java ftp_java ftp 服务器_java ftp服务器

    标题中的“用Java实现FTP...通过学习以上知识点,开发者可以创建一个功能齐全、安全可靠的Java FTP服务器。不过,实际开发时还需要熟悉FTP协议的详细规范,理解各种命令的交互流程,以及如何有效地管理服务器资源。

    ftp.rar_FTP.jar_JAVAFTP_ftp java_java ftp_pudn ftp ja

    开发者可能已经封装了FTP的相关逻辑,使得用户可以通过简单的Java代码来连接FTP服务器,上传、下载或管理文件。 FTP在Java中的实现主要依赖于`java.net`和`java.io`等标准库,以及`javax.net.ssl`库(如果需要使用...

Global site tag (gtag.js) - Google Analytics