android - ftp4j - 连接过多异常
问题描述
我正在创建一个同步服务,它将文件复制到用户选择的 ftp 文件夹。当我运行该服务时,它与 ftp 连接并检查 android 本地存储中的文件是否在 ftp 上可用,如果没有,它会上传。下面是我的代码。
FTPClient ftpClient = new FTPClient();
ftpClient.setPassive(true);
if (!ftpClient.isConnected()) {
ftpClient.connect(server, port);
}else {
Log.i(TAG,"FTP already connected");
}
if (!ftpClient.isAuthenticated()) {
ftpClient.login(username, password);
}else {
Log.i(TAG,"FTP already Logged In");
}
ftpClient.changeDirectory(rfolderpath);
String[] files = ftpClient.listNames();
if (Arrays.asList(files).contains(filename)) {
Log.i(TAG, filename + " Already Found in FTP, Skipping");
} else {
Log.i(TAG, "Sending Go Ahead For Upload");
File file = new File(filepath);
Log.i(TAG, "Uploading File: " + filename);
ftpClient.upload(file);
ftpClient.logout();
ftpClient.disconnect(true);
}
该代码适用于前 8 个文件,然后我开始从该 IP 获得太多连接 (8) 的异常,并且我的同步终止。
这是错误文本:
it.sauronsoftware.ftp4j.FTPException [code=421, message= Too many connections (8) from this IP]
有人可以帮助我如何处理这种情况。
解决方案
我改变了上传文件的逻辑。现在在 AsyncTaskLoader 下创建了一个 ftp 连接,然后上传所有文件,没有错误。
推荐阅读
- javascript - 如何使用此处的 api 添加地理坐标图以形成
- java - Java 移动文件
- python-3.6 - python - 找到一个主题 - 输入:一个 .txt 文件,包含 10 个序列和 10 个主题
- javascript - React-native get 方法返回值
- terminal - Ranger 不会显示图像预览
- c# - 在用户计算机上运行带有 MySQL 数据库的软件时,我们需要什么?
- flutter - 下载并打开下载的文件
- c# - 我如何在winforms中制作我的自定义对话框?
- jquery - 汉堡菜单需要点击 2 次才能重新打开。冲突的jQuery?
- reactjs - 如何在 react-data-grid 中禁用默认标题