android 搭建FTP服务器 您所在的位置:网站首页 安卓版ftp服务器连不上 android 搭建FTP服务器

android 搭建FTP服务器

2024-06-19 01:26| 来源: 网络整理| 查看: 265

1下载jar包 

http://mina.apache.org/ftpserver-project/download_1.1.1.html

将jar包文件拷贝到libs目录下如下图所示

 

 在build.gradle中添加依赖

implementation files('libs\\ftpserver-core-1.1.1.jar') implementation files('libs\\slf4j-log4j12-1.7.21.jar') implementation files('libs\\log4j-1.2.17.jar')

 packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' exclude 'META-INF/DEPENDENCIES' }

在activity中使用方法

private FtpServer mFtpServer; String localIp =getIpAddressString(); startFtpServer(localIp,8877);

private void startFtpServer(String hostip,int port){ Log.d(TAG, "startFtpServer: hostip "+hostip+"port "+port); FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory factory = new ListenerFactory(); serverFactory.addListener("default",factory.createListener()); factory.setPort(port); factory.setServerAddress(hostip); serverFactory.addListener("default",factory.createListener()); BaseUser user = new BaseUser(); user.setName("admin"); user.setPassword("123456789"); user.setEnabled(true); user.setMaxIdleTime(3000); user.setHomeDirectory("/mnt/sdcard/ftp"); List authorities = new ArrayList(); authorities.add(new WritePermission()); user.setAuthorities(authorities); try{ serverFactory.getUserManager().save(user); } catch (FtpException e){ e.printStackTrace(); } if(mFtpServer!=null){ mFtpServer.stop(); } mFtpServer = serverFactory.createServer(); try{ mFtpServer.start(); }catch (Exception e){ e.printStackTrace(); } Log.d(TAG, "startFtpServer: startok"); } public static String getIpAddressString() { try { for (Enumeration enNetI = NetworkInterface .getNetworkInterfaces(); enNetI.hasMoreElements(); ) { NetworkInterface netI = enNetI.nextElement(); for (Enumeration enumIpAddr = netI .getInetAddresses(); enumIpAddr.hasMoreElements(); ) { InetAddress inetAddress = enumIpAddr.nextElement(); if (inetAddress instanceof Inet4Address && !inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress(); } } } } catch (SocketException e) { e.printStackTrace(); } return "0.0.0.0"; }

最后是访问效果 

登录的时候用户名和密码必须手动输入,否则会出现不能登录的问题?很奇怪



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有