首页 > 解决方案 > 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]

有人可以帮助我如何处理这种情况。

标签: androidftp4j

解决方案


我改变了上传文件的逻辑。现在在 AsyncTaskLoader 下创建了一个 ftp 连接,然后上传所有文件,没有错误。


推荐阅读