解决FTPClient不能访问文件的问题150 Opening ASCII mode data connection
来源:互联网 发布:联想网络同传怎么用 编辑:程序博客网 时间:2024/05/17 22:04
问题描述
我使用的FTPClient:import org.apache.commons.net.ftp.FTPClient;
java中下载FTP文件,但是
FTP登录成功,FTPClient访问文件,却卡住。
代码(伪代码):
boolean res = f.login();
FTPFile[] list = f.ftp.listFiles("/");
打印日志:
220 Serv-U FTP Server v6.4 for WinSock ready...
USER zhhzhx
331 User name okay, need password.
PASS Its.info
230 User logged in, proceed.
登陆成功
SYST
215 UNIX Type: L8
PORT 192,168,1,106,213,244
200 PORT Command successful.
LIST /
150 Opening ASCII mode data connection for /bin/ls.
解决思路
FTP是有两种数据连接模式的,主动模式和被动模式。
PORT(主动)方式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:
客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
ftp默认为port主动模式,如果客户端pc所在网络有防火墙,则ftp server在数据传输时,就不能连接到client。
解决方法
修改为被动方式。
java中修改:ftp.enterLocalPassiveMode();
FTP工具,一般都可以在选项里面找到。
- 解决FTPClient不能访问文件的问题150 Opening ASCII mode data connection
- 解决FTPClient不能访问文件的问题150 Opening ASCII mode data connection
- ftp 150 Opening ASCII mode data connection for /bin/ls.
- ftp错误150 Opening ASCII mode data connection for /bin/ls.
- FTP 150 Opening BINARY mode data connection for MLSD 读取目录列表失败
- PHP Warning: ftp_get(): Opening BINARY mode data connection for
- 【解决 FTP】windows访问Ubuntu的vsftpd(FTP服务器)问题200 Switching to ASCII mode,227 Entering Passive Mode (0,0,0
- Apache FTPClient上传文件时的问题及解决
- RabbitMQ远程不能访问问题的解决
- 解决Xcode 不能 访问http的问题
- 解决Xcode 不能 访问http的问题
- 解决Chrome突然不能访问的问题
- 解决RabbitMQ远程不能访问的问题
- 使用FTPClient文件上传下载遇到的问题
- FTP读取远程文件&解决使用FTPClient类时线程挂起的问题
- 解决FTPClient上传文件时文件被破坏问题
- wampserver安装配置。解决不能访问项目的问题。局域网不能访问的问题
- 解决.bin文件不能执行的问题
- 使用you-get进行视频爬取
- Maven 浅谈
- pat 乙级 1008. 数组元素循环右移问题 (20)
- 最基本的Java集合框架---List
- 主题模型lda使用
- 解决FTPClient不能访问文件的问题150 Opening ASCII mode data connection
- jarsigner简单使用说明
- Base64原理解析
- struts.xml文件详解
- LeetCode 187. Repeated DNA Sequences
- springmvc 接收前端数据 map。数组
- servlet的过滤器
- 在windows 使用 map的经历1
- linux-配置网络环境&&安装Firefox