26、android上跑apache的ftp服务

一、为啥

在android设备跑ftp服务,在现场方便查看日志,目前就是这么用的。

二、前提:

从apache的官网下载依赖包:http://mina.apache.org/ftpserver-project/download_1.0.6.html

解压后如下:

在最右侧的jar包列表中,并不需要全部导入我们的工程,需要导入的包为:

记得把jar包添加到buildPath,同时在order and export选项选中上步添加的jar包

三、如何用:

  1 package com.example.zzk;
  2
  3 import java.io.File;
  4 import java.io.IOException;
  5
  6 import org.apache.ftpserver.FtpServer;
  7 import org.apache.ftpserver.FtpServerFactory;
  8 import org.apache.ftpserver.ftplet.FtpException;
  9 import org.apache.ftpserver.listener.ListenerFactory;
 10 import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
 11
 12
 13 import android.app.Activity;
 14 import android.content.Context;
 15 import android.os.Bundle;
 16 import android.os.Environment;
 17 import android.view.Menu;
 18 import android.view.MenuItem;
 19
 20 public class MainActivity extends Activity {
 21
 22     public static String path = Environment.getExternalStorageDirectory()+File.separator+"FTP_TEST"+ File.separator;
 23     public Context ctxt;
 24     public String tag = "zzk";
 25     public static FtpServer ftpServer;
 26
 27     @Override
 28     protected void onCreate(Bundle savedInstanceState) {
 29         super.onCreate(savedInstanceState);
 30         setContentView(R.layout.activity_main);
 31
 32         ctxt = getApplicationContext();
 33         ftpServiceStart(ctxt);
 34     }
 35
 36
 37      /**
 38       *
 39       * 启动ftp服务
 40       */
 41      public static void ftpServiceStart(Context ctxt)
 42      {
 43          FtpServerFactory serverFactory = new FtpServerFactory();
 44
 45          ListenerFactory factory = new ListenerFactory();
 46
 47          factory.setPort(12345);        // set the port of the listener
 48
 49         FIleUtils fu = new FIleUtils(ctxt);
 50         try {
 51                 File file = new File(path);
 52                 if(!file.isDirectory())
 53                 {
 54                     file.mkdir();
 55                 }
 56             fu.createFile(path+"ftpserver.properties");
 57             String str = "" +
 58                     "ftpserver.user.admin.username=admin\n"+
 59                     "ftpserver.user.admin.userpassword=bff4d7685c1475b68c016c478a728b6e\n"+
 60                     "ftpserver.user.admin.homedirectory=/mnt/sdcard\n"+
 61                     "ftpserver.user.admin.enableflag=true\n"+
 62                     "ftpserver.user.admin.writepermission=true\n"+
 63                     "ftpserver.user.admin.maxloginnumber=250\n"+
 64                     "ftpserver.user.admin.maxloginperip=250\n"+
 65                     "ftpserver.user.admin.idletime=300\n"+
 66                     "ftpserver.user.admin.uploadrate=10000\n"+
 67                     "ftpserver.user.admin.downloadrate=10000\n";
 68
 69             fu.writeFile(str, path+"ftpserver.properties");
 70
 71             File files=new File(path+"ftpserver.properties");
 72
 73             PropertiesUserManagerFactory usermanagerfactory = new PropertiesUserManagerFactory();
 74             usermanagerfactory.setFile(files);
 75             serverFactory.setUserManager(usermanagerfactory.createUserManager());
 76
 77         } catch (IOException e1) {
 78             // TODO Auto-generated catch block
 79             e1.printStackTrace();
 80         }
 81
 82
 83
 84
 85
 86          serverFactory.addListener("default", factory.createListener());        // replace the default listener
 87          if(ftpServer != null)
 88          {
 89              ftpServer.stop();
 90          }
 91
 92          FtpServer server = serverFactory.createServer();
 93          ftpServer = server;
 94          // start the server
 95          try {
 96             server.start();
 97         } catch (FtpException e) {
 98             // TODO Auto-generated catch block
 99             e.printStackTrace();
100         }
101
102      }
103
104
105 }

四、总结

1、大致过程就是:

①创建ftp服务器工厂

②创建ftp监听工厂

③设置监听端口(这里设置的是12345)

④创建ftp配置文件

 1 String str = "" +
 2                     "ftpserver.user.admin.username=admin\n"+
 3                     "ftpserver.user.admin.userpassword=bff4d7685c1475b68c016c478a728b6e\n"+
 4                     "ftpserver.user.admin.homedirectory=/mnt/sdcard\n"+
 5                     "ftpserver.user.admin.enableflag=true\n"+
 6                     "ftpserver.user.admin.writepermission=true\n"+
 7                     "ftpserver.user.admin.maxloginnumber=250\n"+
 8                     "ftpserver.user.admin.maxloginperip=250\n"+
 9                     "ftpserver.user.admin.idletime=300\n"+
10                     "ftpserver.user.admin.uploadrate=10000\n"+
11                     "ftpserver.user.admin.downloadrate=10000\n";

这里的配置为:用户名为admin 密码为经过md5加密的一串字符串(你可以自行设置,百度md5加密,自己找去吧),还有设置登录个、ip、上下行速度等

⑤将配置文件生效

⑥对ftp服务设置监听端口

⑦创建ftpServer

⑧启动服务

四、demo地址

http://pan.baidu.com/s/1qWA04Ja

五、如何判断ftp服务是否启动成功

一个很方便的工具:chrome,直接输入ftp://+你的ftp地址+:+端口 (举例:ftp://192.168.1.2:12345)

时间: 2024-10-08 13:35:35

26、android上跑apache的ftp服务的相关文章

Android中使用Apache common ftp进行下载文件

在Android使用ftp下载资源 可以使用ftp4j组件,还可以用apache common net里面的ftp组件,这2个组件我都用过. 个人感觉Apache common net里面的组件比较好用一些,下面是一个实例. 项目中对ftp的使用进行了封装,添加了回调函数已经断点续传的方法. FTPCfg 用来存储ftp地址,密码等信息的. FTPClientProxy 只是个代理而已,里面主要封装了common ftp api IRetrieveListener做回调用的,比如用于是否下载完成

Android上传文件之FTP

android客户端实现FTP文件(包括图片)上传应该没什么难度.写下来就了为了记录一下,望能帮到新手. 需要用到 commons-net-3.0.1.jar,后面附上jar包. 直接上代码: /**  * 通过ftp上传文件  * @param url ftp服务器地址 如: 192.168.1.110  * @param port 端口如 : 21  * @param username  登录名  * @param password   密码  * @param remotePath  上到

exportfs命令、NFS客户端问题、FTP介绍、使用vsftpd搭建ftp服务

exportfs命令 exportfs命令用来管理当前NFS共享的文件系统列表. 常用选项 -a:全部卸载或全部挂载 -r:重新挂载 -u:卸载某个目录 -v:显示共享目录 常用组合:exportfs -arv 服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效. 注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统. 以上操作都在服务端进行! 测试 在服务端的/etc/exports配置文件中,增加一行.把/tmp/目录单独共享给1

Android Apache common ftp开源库以及http区别分析

1.前言: ftp开源库:Apache common ftp开源库上传文件到局域网的ftp上吧.开源库是commons-net-2.2.jar.包名是这样的:org.apache.commons.net.ftp.FTPClient;用这个框架也能可以上传,下载以及删除ftp服务器的文件的.我也是参考网上大神例子迅速在项目中使用,现在趁机会总结一下,以及我自已在此基础上再次封装的ftp使用类. http开源库:之前开发的时候先是用到了http协议上传文件,删除文件等等,使用的开源库是AsyncHt

Android版Ftp服务端软件

分享一款开发的Android版Ftp服务端软件,支持Android4.0及以上版本,可以实现局域网无线传输文件到手机,或者把手机上的多媒体文件分享到iPad等设备来扩展这些设备的存储空间,详情请见软件的使用帮助,截图如下: iPad等设备播放手机上的多媒体文件: 下载地址: http://pan.baidu.com/s/1sjlZBzR 提取码: khji

华为eNSP模拟器上实现FTP服务

**华为售后认证实验2.1:华为设备热补丁升级(真机) 实验日期:2019-03-22 ** 2.1 实验目标 本实验以AR2220为例,演示华为路由交换设备热补丁升级的一般步骤.完成本实验,你可以: · 使用FTP方式上传补丁文件的方法· 华为设备热补丁在线升级的方法· 恢复设备到安装补丁之前的状态的方法 2.2 组网及业务描述 图 2-1热补丁升级实验拓扑 配置用PC机使用Console线缆连接至路由器,并使用以太网线连接至路由器的GE0/0/2端口,以供上传文件使用.将补丁文件传至路由器,

用三种不同的方法访问Linux系统上的FTP服务过程详解

今天向大家介绍一下,如何在Linux上配置ftp服务,并且使用三种不同的方式访问Linux系统上的FTP服务. 实验环境:一台windows7系统虚拟机,一台Linux系统虚拟机. 实验目的:搭建FTP文件传输服务,并进行匿名访问.虚拟用户访问和本地用户验证. 匿名访问用户名为ftp或anonymous,提供任意密码(包括空密码)都可以通过服务器认证 安装软件包,关闭防火墙和关闭selinux功能. 在ftp服务中创建一个wen.txt文件 测试(window7) 匿名登录ftp服务 从ftp服

两条命令让cocos2d-x项目跑在android上

cocos2d-x3.0以来,目录中就多了一个叫setup.py的配置文件.运行它可以帮助我们迅速的配置必要的环境变量:cocos2d-x命令行的路径,android_sdk的路径,ant_root的路径,android_ndk的路径. 首先自然是要下载cocos2d-x3.0之后的版本,下载android_sdk,android_ndk,和ant. 等环境变量配置完成,我们就可以开始我们的新项目了. 我们使用cocos new命令来生成一个新的cocos2d-x项目. 所以只需输入 cocos

在Win7的IIS上搭建FTP服务及用户授权

FTP服务 FTP是文件传输协议(File Transfer Protocol)的简称,该协议属于应用层协议(端口号通常为21),用于Internet上的双向文件传输(即文件的上传和下载).在网络上有很多服 务器提供FTP服务,用来存放大量的文件供他人下载.FTP服务的主要作用是让远程用户可以连接上来,查看服务器上有哪些文件,然后下载,当然用户也可以 将本地文件上传到服务器,共享给其他人以便下载.FTP服务提供上传下载服务的同时,管理员也可以设置不同用户对不同文件夹的访问权限(读.写). 在Wi