Android把手机作为FTP服务器,在PC端管理手机文件的简单实现

我这里是使用的apache的开发包,下面就是实现android手机作为FTP服务器必须的jar包,可以到官网上下载

也可以在CSDN上找一个,网上 这种资源还是比较丰富的。 这是我使用的jar包-->> 下载资源
commons-net-3.3-sources.jar
commons-net-3.3.jar
ftpserver-core-1.0.6.jar
log4j-1.2.14.jar
mina-core-2.0.4.jar
slf4j-api-1.5.2.jar
slf4j-log4j12-1.5.2.jar
如果还有人不会使用第三方开发包的话-->>(先把下载的包复制到lib/libs文件夹下,然后选中右键--add to Build path)
还有很重要的一点就是:ftp的实现有一个先决条件 就是手机和电脑要使用相同的Wifi。下面是代码:
package com.belle.lp;

import java.util.ArrayList;
import java.util.List;

import org.apache.ftpserver.FtpServer;
import org.apache.ftpserver.FtpServerFactory;
import org.apache.ftpserver.ftplet.Authority;
import org.apache.ftpserver.listener.ListenerFactory;
import org.apache.ftpserver.usermanager.impl.BaseUser;
import org.apache.ftpserver.usermanager.impl.WritePermission;

import android.app.Activity;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.Button;

public class MainActivity extends Activity {
	
	private Button button;
	private FtpServer ftpServer;
	private final static int PORT = 2121;
	private final static String USERNAME = "u";
	private final static String PASSWORD = "m";
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		try {
			//用于创建server
			FtpServerFactory serverFactory = new FtpServerFactory();
			//配置信息,如设监听的端口,设置IP过滤器
			ListenerFactory listenerFactory = new ListenerFactory();
			//设置端口
			listenerFactory.setPort(PORT);
			//如果五分钟还没任何操作,关闭连接
			listenerFactory.setIdleTimeout(5*60*1000);
			
			//设置匿名用户 但是对于稳健权限是只读
			
			//设置用户名密码
			BaseUser user = new BaseUser();
			user.setName(USERNAME);
			user.setPassword(PASSWORD);
			
			//设置PC端登录后可访问的根目录
			user.setHomeDirectory("/mnt");
			
			//授予用户写权限
			List<Authority> authorities = new ArrayList<Authority>();
			authorities.add(new WritePermission());
			user.setAuthorities(authorities);
			serverFactory.getUserManager().save(user);
			
			//创建并监听网络
			serverFactory.addListener("default", listenerFactory.createListener());
			
			//创建服务
			ftpServer = serverFactory.createServer();
			
			//开启服务
			ftpServer.start();
			
			//获取手机IP
			WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE);
			int ip = wifiManager.getConnectionInfo().getIpAddress();
			String realIp = intToIp(ip);
			
			button = (Button) findViewById(R.id.button1);
			
			//这就是最终在PC端访问手机文件要输入的内容
			button.setText("ftp://"+USERNAME+":"+PASSWORD+"@"+realIp+":"+PORT+"/");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private String intToIp(int i) {
		return (i & 0xFF)+"."+((i >> 8) & 0xFF)+"."+((i >> 16) & 0xFF)+"."+(i >> 24 & 0xFF);
	}
	
	@Override
	protected void onDestroy() {
		super.onDestroy();
		if(null != ftpServer){
			ftpServer.stop();
			ftpServer = null;
		}
	}

}

假设用户名和密码是 u 和 m
则在PC端输入的访问地址就是:  ftp://u:m@IP:2121/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值