设为首页 收藏本站
查看: 1347|回复: 0

26、android上跑apache的ftp服务

[复制链接]

尚未签到

发表于 2015-5-26 10:36:35 | 显示全部楼层 |阅读模式
  一、为啥
  在android设备跑ftp服务,在现场方便查看日志,目前就是这么用的。
  
  二、前提:
  从apache的官网下载依赖包:http://mina.apache.org/ftpserver-project/download_1.0.6.html
  解压后如下:
DSC0000.png
  在最右侧的jar包列表中,并不需要全部导入我们的工程,需要导入的包为:
DSC0001.png
  记得把jar包添加到buildPath,同时在order and export选项选中上步添加的jar包
  
  三、如何用:


DSC0002.gif DSC0003.gif


  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 }
View Code  
  四、总结
  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)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-70822-1-1.html 上篇帖子: .net下FTP的几篇文章(downmoon搜集) 下篇帖子: 在Windows2008系统中利用IIS建立FTP服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表