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包
三、如何用:
package com.example.zzk; import java.io.File;
import java.io.IOException; import org.apache.ftpserver.FtpServer;
import org.apache.ftpserver.FtpServerFactory;
import org.apache.ftpserver.ftplet.FtpException;
import org.apache.ftpserver.listener.ListenerFactory;
import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory; import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.view.Menu;
import android.view.MenuItem; public class MainActivity extends Activity { public static String path = Environment.getExternalStorageDirectory()+File.separator+"FTP_TEST"+ File.separator;
public Context ctxt;
public String tag = "zzk";
public static FtpServer ftpServer; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ctxt = getApplicationContext();
ftpServiceStart(ctxt);
} /**
*
* 启动ftp服务
*/
public static void ftpServiceStart(Context ctxt)
{
FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory factory = new ListenerFactory(); factory.setPort(12345); // set the port of the listener FIleUtils fu = new FIleUtils(ctxt);
try {
File file = new File(path);
if(!file.isDirectory())
{
file.mkdir();
}
fu.createFile(path+"ftpserver.properties");
String str = "" +
"ftpserver.user.admin.username=admin\n"+
"ftpserver.user.admin.userpassword=bff4d7685c1475b68c016c478a728b6e\n"+
"ftpserver.user.admin.homedirectory=/mnt/sdcard\n"+
"ftpserver.user.admin.enableflag=true\n"+
"ftpserver.user.admin.writepermission=true\n"+
"ftpserver.user.admin.maxloginnumber=250\n"+
"ftpserver.user.admin.maxloginperip=250\n"+
"ftpserver.user.admin.idletime=300\n"+
"ftpserver.user.admin.uploadrate=10000\n"+
"ftpserver.user.admin.downloadrate=10000\n"; fu.writeFile(str, path+"ftpserver.properties"); File files=new File(path+"ftpserver.properties"); PropertiesUserManagerFactory usermanagerfactory = new PropertiesUserManagerFactory();
usermanagerfactory.setFile(files);
serverFactory.setUserManager(usermanagerfactory.createUserManager()); } catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} serverFactory.addListener("default", factory.createListener()); // replace the default listener
if(ftpServer != null)
{
ftpServer.stop();
} FtpServer server = serverFactory.createServer();
ftpServer = server;
// start the server
try {
server.start();
} catch (FtpException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
四、总结
1、大致过程就是:
①创建ftp服务器工厂
②创建ftp监听工厂
③设置监听端口(这里设置的是12345)
④创建ftp配置文件
String str = "" +
"ftpserver.user.admin.username=admin\n"+
"ftpserver.user.admin.userpassword=bff4d7685c1475b68c016c478a728b6e\n"+
"ftpserver.user.admin.homedirectory=/mnt/sdcard\n"+
"ftpserver.user.admin.enableflag=true\n"+
"ftpserver.user.admin.writepermission=true\n"+
"ftpserver.user.admin.maxloginnumber=250\n"+
"ftpserver.user.admin.maxloginperip=250\n"+
"ftpserver.user.admin.idletime=300\n"+
"ftpserver.user.admin.uploadrate=10000\n"+
"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)
26、android上跑apache的ftp服务的更多相关文章
- Android上传文件之FTP
android客户端实现FTP文件(包括图片)上传应该没什么难度.写下来就了为了记录一下,望能帮到新手. 需要用到 commons-net-3.0.1.jar,后面附上jar包. 直接上代码: /** ...
- Android 上传文件到 FTP 服务器
实现背景 近期接触到一个需求,就是将文件从Android系统上传到FTP服务器,虽然之前接触过FTP服务器,了解基本的使用流程,但是将此流程从使用习惯转化为代码实现还是有一定难度的.但是基本的流程还是 ...
- Android中使用Apache common ftp进行下载文件
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/birdsaction/article/details/36379201 在Android使用ftp下 ...
- react native android 上传文件,Nodejs服务端获取上传的文件
React Native端 使用react-native-image-picker 做出选择图片的操作,选择完成后,直接将图片Post至服务器,保存在服务器的某个地方(保存图片的路径需要公开显示),并 ...
- Create & use FTP service on Ubuntu(在Ubuntu上搭建并使用FTP服务)
Check if the FTP service has been installed.(检查是否已安装) Vsftpd --version If it has not install,Pres ...
- 在android上跑 keras 或 tensorflow 模型
https://groups.google.com/forum/#!topic/keras-users/Yob7mIDmTFs http://talc1.loria.fr/users/cerisara ...
- C# WebClient进行FTP服务上传文件和下载文件
定义WebClient使用的操作类: 操作类名称WebUpDown WebClient上传文件至Ftp服务: //// <summary> /// WebClient上传文件至Ftp服务 ...
- Centos7上安装Apache
Apache HTTP服务器是世界上最流行的Web服务器. 它是一款免费的开源和跨平台的HTTP服务器,提供强大的功能,可以通过各种模块进行扩展. 以下说明介绍如何在CentOS 7机器上安装和管理A ...
- 如何在CentOS 7上安装Apache
使用systemctl管理Apache服务 我们可以像任何其他系统单元一样管理Apache服务. 要停止Apache服务,请运行: sudo systemctl stop httpd 要再次启动,请键 ...
随机推荐
- calibre电子书管理软件
软件介绍: Calibre 是电子书管理软件,支持 Amazon.Apple.Bookeen.Ectaco.Endless Ideas.Google/HTC.Hanlin Song 设备及格式,功能十 ...
- JavaScript笔记4-数组
一.概述: 1.数组是无类型的:同一数组的各元素可以是任意类型,也可以是数组或对象; 2.索引从0开始,最大到2^32-2=4294967294;最多容纳4294967295个元素; 3.数组是动态的 ...
- Android 适配底部返回键等虚拟键盘的完美解决方案
这个问题来来回回困扰了我很久,一直没能妥善解决. 场景1:华为手机遮挡了屏幕底部. 场景2:进入应用时,虚拟键自动缩回,留下空白区域. 需求: 需要安卓能自适应底部虚拟按键,用户隐藏虚拟按键时应用要占 ...
- Hybrid框架安全隐患分析
Hybrid框架安全隐患分析 目前我司移动端项目中各种app如雨后春笋般生根发芽层出不穷.而利用Hybrid框架确实可以减轻一部分移动端压力.并且做到灵活发版.但是其中的安全问题往往让人忽略. 针对A ...
- jsHint-静态代码检查工具eclipse中使用
今天介绍一个关于js静态代码的检查工具,此工具可以帮助更好的规范代码的编写形式以及检查错误.由于jslint的分支jsHint有跟多的配置项相对使用也比较方便,依次本文主要介绍jsHint的使用方式. ...
- COGS 13. 运输问题4
★★☆ 输入文件:maxflowd.in 输出文件:maxflowd.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 一个工厂每天生产若干商品,需运输到 ...
- C基础的练习集及测试答案(31-39)
31.读懂以下程序,说明程序的功能#include<stdio.h>int main(){ int m,n,r,m1,m2; printf("请输入2个正整数:"); ...
- HTTP 错误 404.15 - Not Found请求筛选模块被配置为拒绝包含的查询字符串过长的请求
web项目中,get方式传值是通过地址栏中的url参数进行传递的.除了浏览器对url长度的限制大小不一之外,出于安全考虑, IIS中对于URL中参数大小也是有限制的,默认为2048KB. 如果参数大于 ...
- UVA 211 The Domino Effect 多米诺效应 (回溯)
骨牌无非两种放法,横着或竖着放,每次检查最r,c最小的没访问过的点即可.如果不能放就回溯. 最外面加一层认为已经访问过的位置,方便判断. #include<bits/stdc++.h> ; ...
- [论文理解] Rapid-Object-Detection-using-a-Boosted-cascade-of-simple-features
Rapid-Object-Detection-using-a-Boosted-cascade-of-simple-features 简介 文章是2001年发表的,是一篇很经典的Object Detec ...