(此项目只作为学习交流使用,切不可去监听他人隐私,否则后果自负)
继续上次。
安卓FTP协议发送文件到服务器
在这个项目中需要把文件发送到ftp服务器,这就需要在手机客户端中,以ftp的方式去连接。
通过FTP的方式来传输文件,可以确保文件在传输过程中不会因为文件太大,造成传输超时或数据上传不完整的情况。
这里推荐一个支持ftp的免费空间服务商 www.nanoyun.com
这里实现FTP的功能需要Apache所提供的Commons Net API。官方下载地址http://commons.apache.org/proper/commons-net/download_net.cgi
我用的 是3.3版本
大致说一下这个模块的代码文件结构
一共3个java文件
一个ftphelper 类 该类提供了连接服务器,关闭连接,发送文件等方法
一个发送文件类,该类提供了网络连接判断,等
一个后台服务类,作为一个服务在后台一直运行,开启另外一个线程发送文件(之后讲)
话不多说,直接上代码吧
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import android.util.Log;
/**
* FTP上传文件类
* @author lookingfor
*
*/
public class FtpHelper {
/**
* 服务器名.
*/
private String hostName;
/**
* 用户名.
*/
private String userName;
/**
* 密码.
*/
private String password;
/**
* FTP连接.
*/
private FTPClient ftpClient;
/**
* 新建文件夹名
*/
private String dirName;
/**
* TAG
*/
private String TAG = "MyListener";
/**
* 构造函数.
*
* @param host hostName 服务器名
* @param user userName 用户名
* @param pass password 密码
*/
public FtpHelper(String host, String user, String pass) {
this.hostName = host;
this.userName = user;
this.password = pass;
this.ftpClient = new FTPClient();
}
/**
* 打开FTP服务.
*
*/
public boolean openConnect() {
boolean flag = true;
// 编码格式为UTF-8
ftpClient.setControlEncoding("UTF-8");
int reply; // 服务器响应值
try {
// 连接至服务器
ftpClient.setDefaultPort(21);//默认端口21
ftpClient.setDefaultTimeout(30000);
ftpClient.connect(hostName);
// 获取响应值