这段时间一直忙着项目开发,没顾上写总结。今天抽点时间对于之前遇到的ftp上传文件无应答的问题总结一下,方便自己以后查看,也方便下个遇到此问题的人能够快速的解决问题。
使用Apache的开源框架写的一个很简单的ftp上传的demo,如果网络环境稳定的情况下上传文件不会有问题,也能得到服务器文件传完后的响应状态,但是遇到大文件和网络不好的情况下,上传文件时间比较长(半个小时以上),这时执行ftpClient.storeFile("test.ts", in)这句代码会卡在这里,即使文件传完了也不会做出响应,得不到服务器的响应代码就不会继续往下执行,线程也就会一直停在这里。下面是一个简单的文件ftp上传demo:
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
public class FtpUtil {
public static void main(String[] args) {
FTPClient ftpClient = new FTPClient();
try {
// 连接指定服务器,默认端口为21
ftpClient.connect("127.0.0.1");
System.out.println("connect to server")