文档章节

解决FTPClient linux 下载文件小于实际文件,线程挂起等问题

t
 tom2016
发布于 2016/04/15 20:04
字数 439
阅读 9
收藏 0
点赞 1
评论 0

FTPClient调用retrieveFileStream导致线程挂起(防火墙问题);下载文件小于实际文件问题解决

实际是因为FTP的两种传输模式:主动模式和被动模式的不同而导致的

FTPClient.listFiles()或者FTPClient.retrieveFile()方法时,就停止在那里,什么反应都没有,出现假死状态。google一把,发现很多人也出现了此类问题,最终在一个帖子里找到了解决办法。在调用这两个方法之前,调用FTPClient.enterLocalPassiveMode();这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据。为什么要这样做呢,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上,由于安全限制,可能某些端口没有开启,所以就出现阻塞。

最近因为项目需要,研究有关ftp的相关东西。结果发现一个问题。同样的程序在不同的机器上运行,结果有一个直接导致线程挂起,另外一个运行却正常。经过反复的测试最后发现,线程挂起的那台机器装有防火墙,导致调用retrieveFileStream方法时直接线程挂起。

经过网上一大堆的查找终于找到解决方法:

ftpClient.enterLocalPassiveMode(); //开启本地被动模式
设置FTPClient为被动传输模式即可解决线程挂起问题。此代码设置在登陆之后或者之前都可以。

同样,这只适用于下载的被动传输模式,如果上传的话需要enterRemotePassiveMode()//开启远程被动传输模式


本文转载自:http://blog.csdn.net/tengdazhang770960436/article/details/43794005

共有 人打赏支持
t
粉丝 0
博文 7
码字总数 0
作品 0
杭州
程序员
不用FTP使用SecureCRT上传下载文件,并解决rz、sz command not found异常

使用SSH终端操作Linux/UNIX时,很多时候需要传一些文件到服务器上,或说从服务器上下载一些文件,这类文件传输动作一般使用FTP即可,但是需要架设FTP Server,每次传输不太方便,还要另外使用...

thinkyoung
2014/12/22
0
0
commons-net上传同一个文件到服务器只有一个能成功

场景是这样的,多个客户有可能同时上传一个大文件到服务器上,如果是这样的话,两个线程只有一个线程能上传,另一个线程就一直在RUNNABLE状态,但是会停在一个方法上,不会超时,用jstack看线...

曾杰
2012/03/29
670
2
嵌入式Linux学习基础规划篇

嵌入式的学习是需要日积月累的,是通过一点一滴的积累才能成为大神。下面来介绍一下嵌入式linux学习基础规划,目标是达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质...

创客学院
04/10
0
0
用commons-net包写Ftp客户端下载(一)

由于需要客户需求,需要把Ftp上的所有文件下载到本地,包括目录和文件。看到文件数量的时候我就哭了。。 几万个文件,晕死。这个地方我遇到的几个困难我会一一说明。 下载commons-net包我就不...

猴子
2011/10/20
0
1
操作系统知识回顾---进程线程模型

一、进程模型 (一)多道程序设计 从系统允许多个程序同时进入CPU那一天开始,我们才有了进程,这个对CPU资源的抽象。我们把这种多个程序同时运行在CPU的情况叫做多道程序。其优点不必赘述,举...

付超_pku
2013/05/24
0
0
java实现FTP多线程断点续传,上传下载!

package com.ftp; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintW......

狼狼A狗
2011/03/22
0
3
ftp下载文件文件名乱码问题

package mine.backstage.cms.test; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat......

美少女壮士喵
2017/11/15
2
0
pthread_arrt_XXXX(调度相关)

pthreadarrtXXXX: 线程属性相关: 头文件: #include <rtl_sched.h> 函数定义: 设置/得到cpu相关属性: int pthreadattrsetcpunp(pthreadattrt *attr, int cpu); int pthreadattrgetcpunp(......

barsoom
2012/11/06
0
0
使用java ftpClinet进行多线程下载,并且打印下载进度,结果为什么会超过100%?

最近公司有一个项目,是一个将上平台的节目拷贝到本平台的模式,拷贝程序部署在本平台,通过ftpclient连接到上平台,获取远程文件,然后下载到本机服务器,下载过程中还要记录偏移量算出下载...

route000
2017/06/15
97
1
windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码

我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线程分别占用的cpu呢 ...

本人纯属虚构
2013/04/24
0
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java集合元素的默认大小

当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使...

竹叶青出于蓝
5分钟前
1
0
Java快速开发平台,JEECG 3.7.7闪电版本发布,增加多套主流UI代码生成器模板

JEECG 3.7.7 闪电版本发布,提供5套主流UI代码生成器模板 导读 ⊙平台性能优化,速度闪电般提升 ⊙提供5套新的主流UI代码生成器模板(Bootstrap表单+BootstrapTable列表\ ElementUI列表表单)...

Jeecg
8分钟前
0
0
export 和 module.export 的区别

在浏览器端 js 里面,为了解决各模块变量冲突等问题,往往借助于 js 的闭包把左右模块相关的代码都包装在一个匿名函数里。而 Nodejs 编写模块相当的自由,开发者只需要关注 require,exports,...

孟飞阳
10分钟前
0
0
技术教育的兴起

技术教育的兴起 作者: 阮一峰 1、 有一年,我在台湾环岛旅行。 花莲的海边,我遇到一对台湾青年夫妻,带着女儿在海滩上玩。我们聊了起来。 当时,我还在高校当老师。他们问我,是否觉得台湾...

吕伯文
10分钟前
0
0
Linux服务器下的HTTP抓包分析

说到抓包分析,最简单的办法莫过于在客户端直接安装一个Wireshark或者Fiddler了,但是有时候由于客户端开发人员(可能是第三方)知识欠缺或者其它一些原因,无法顺利的在客户端进行抓包分析,...

mylxsw
15分钟前
0
0
mybatis3-javaapi

sqlSessionFactoryBuilder->sqlSessionFactory->sqlSession<-rowbound<-resultHandler myBatis uses a Java enumeration wrapper for transaction isolation levels, called TransactionIsol......

writeademo
18分钟前
0
0
Java NIO:浅析I/O模型

也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念...

yzbty23
19分钟前
0
0
了解iOS消息推送一文就够:史上最全iOS Push技术详解

本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表。 1、引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ、微信等IM界面处于前台时,聊天消息和指令都会...

JackJiang-
20分钟前
0
0
Mysql汉子转拼音

update t_app_city SET CITY_NAME_BEGIN = ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(CITY_NAME USING gbk),1)),16,10), 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7, 0xBFA......

尘叙缘
22分钟前
0
0
大数据构建智慧城市“新引擎”,加速推进新旧动能转换

——“大数据与智慧城市”技术交流分享会——济南站召开 7月13日,“大数据携手智慧城市,助力山东新旧动能转换”技术交流分享会——济南站在山东信息通信技术研究院会议室成功举办,此次会议...

左手的倒影
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部