Android FTP客户端实现

android中使用第三方库来操作FTP,这里使用Apache的包,下载地址为:http://commons.apache.org/proper/commons-net/download_net.cgi

其文件名称为:commons-net-3.3-bin.zip

步骤1:在项目中引入包commons-net-3.3.jar,导入需要的FTPClient类;

步骤2:初始化FTPClient

mFtp=new FTPClient();

步骤3:设置登录的地址和端口

mFtp.connect(ftpUrl,21);

步骤4:设置登录用户名和密码

mFtp.login(name,pwd);

步骤5:设置文件类型和采用被动传输方式

mFtp.setFileType(FTP.BINARY_FILE_TYPE);

mFtp.enterLocalPassiveMode();

步骤6:传输文件

boolean aRtn=mFtp.storeFile(remoteFileName,aInputStream);//成功返回true

aInputStream.close();

步骤7:关闭连接

mFtp.disconnect();

核心代码:

//导入需要的FTPClient类

import org.apache.commons.net.ftp.FTPClient;

//初始化FTPClient

FTPClient ftpClient=new FTPClient();

try{

//连接到指定的FTP服务器

ftpClient.connect(InetAddress.getByName(SERVER));

//使用用户名和密码登录FTP

ftpClient.login(USERNAME,PASSWORD);

//检查返回的字符串中是否包含250–250响应代码表示“行为完成”

if(ftpClient.getReplyString().contains(“250”)){

//设置文件类型

ftpClient.setFileType(//默认使用的是ASCII编码的,这里设置为二进制文件

org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE

);

//定义一个缓冲区

BufferedInputStream buffIn=null;

//将文件加载到缓冲区中

buffIn=new BufferedInputStream(new FileInputStream(FULL_PATH_TO_LOCAL_TYPE));

//设置客户端的PASV模式(客户端主动连服务器:端口用20)

ftpClient.enterLocalPassiveMode();

//存储文件。返回是否成功

boolean result=ftpClient.storeFile(localAsset.getFileName,progressInput);

//关闭缓冲区

buffIn.close();

//登出

ftpClient.logout();

//断开连接

ftpClient.disconnect();

}

}catch(SocketException e){

}catch(UnKnowHostException e){

}catch(IOEception ioe){

}

Telnet客户端

实现的远程控制Web服务器。

android使用第三方库Telnet,这里使用Apache的包,下载地址:http://commons.apache.org/proper/commons-net/download_net.cgi

其文件名称为:commons-net-3.3-bin.zip

步骤1:在项目中引入包commons-net-3.3.jar,导入需要的TelnetClient类;

步骤2:初始化TelnetClient

tc=new TelnetClient();

步骤3:打开连接

tc.connect(remoteip,remoteport);

步骤4:读写数据

tc.getInputStream(); tc.getOutputStream();

步骤5:断开Telnet连接

tc.disconnect();

核心代码:

//定义一个TelnetClient

TelnetClient tc=new TelnetClient();

try{

//连接到指定的FTP服务器

tc.connect(remoteip,remoteport);

}catch(IOEception ioe){

System.exit(1);

}

IOUtil.readWrite(tc.getInputStream(),tc.getOutputStream(),System.in,System.out);

try{

//断开连接

tc.disconnect();

}catch(IOEception ioe){

}

其中调用的IOUtil类封装了一些读写操作

public final class IOUtil{

public staic final void readWrite(final InputStream remoteInput,final OutputStream remoteOutput,final InputStream localInput,final OutputStream localOutput){

//定义读写的线程

Thread read,writer;

//定义读线程的具体操作

reader=new Thread(){

@Override

public void run(){

int ch;

try{

//判断没被中断的时候

while(!interrupred()&&(ch=localInput.read())!=-1){

//写自己到远程输入里面

remoteOutput.write(ch);

//刷新发送

remoteOutput.flush();

}

}catch(IOException e){

}

}

};

//定义写线程的具体操作

reader=new Thread(){

@Override

public void run(){

int ch;

try{

//把数据从输入流复制到输出流

Util.copyStream(remoteInput,localOutput);

}catch(IOException e){

System.exit(1);

}

}

};

//设置Writer线程

writer.setPriority(Thread.currentThread().getPriority()+1);

//启动writer线程

writer.start();

//设置reader为后台运行

reader.setDaemon(true);

//启动readre线程

reader.start();

try{

//使得writer线程完成run()方法后,在执行join()方法后的代码

writer.join();

//中断reader线程

reader.interrupt();

}catch(InterruptedException e){

}

};

}

Share this:

android telnet服务器端,Android FTP客户端实现、Telnet客户端相关推荐

  1. Android中服务器端与客户端交互

    一:服务器端建立 1:下载Tomcat 以及 struts(框架:为了解决文件上传更简洁),后面会提供两个资源的下载链接.然后解压下载好的Tomcat和struts 2:配置tomcat:打开Myec ...

  2. Telnet,Mstsc,SSH,FTP之间的比较和区别

    文章目录 1 Telnet 1.1 Telnet是什么协议 1.2 Telnet有什么用 1.2.1 Telnet使用 1.3 Telnet系统组成 2 Telnet与mstsc的区别 3 SSH 3 ...

  3. android从服务端获取json解析显示在客户端上面,Android服务端获取json解析显示在客户端上面.doc...

    Android服务端获取json解析显示在客户端上面 Android从服务端获取json解析显示在客户端上面 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比 ...

  4. Linux as4开启telnet,linux as4 虚拟机 上开启 telnet 和ssh 和 ftp 服务

    1.telnet服务开启 (1)输入[root@rehat ~]# chkconfig krb5-telnet --list krb5-telnet     on 这是你的服务存在的状态,如果没有的话 ...

  5. Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务

    Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务 参考博客:http://blog.csdn.net/zhyl8157121/article/d ...

  6. 视频教程-仿淘宝客户端电商平台android初级速成-Android

    仿淘宝客户端电商平台android初级速成 北风网技术总监,在某大型电信设备公司担任架构师,主要从事电信领域的软件开发,经验丰富.对电信计费系统以及核心网软件系统有深入了解,对设计高可靠性,高扩展性的 ...

  7. FC6下的ftp服务和telnet服务安装

    费了几天的劲,终于把FC6下的ftp服务和telnet服务安装上了! 我是用的VMware 6下建的FC6, 1.启动ftp服务:,我是菜鸟,开始不知道FC6下带着ftp服务,于是疯狂的找rpm包,找 ...

  8. Android Socket编程android端服务器和客户端的实现

     Android Socket编程android端服务器和客户端的实现       其实和java实现的差不多,或本质是用java实现的,但由于android有自身的独特性,所以还是有一些要注意的点: ...

  9. Android连接SQLServer详细教程(数据库+服务器+客户端)

    本文为原创,如果转载请注明出处 http://blog.csdn.net/zhyl8157121/article/details/8169172 其实之前发过一篇这样的博文http://blog.cs ...

最新文章

  1. 有哪些「魔改」损失函数,曾经拯救了你的深度学习模型?
  2. 【STM32】外部中断
  3. Struts2的核心过滤器
  4. matlab soble滤波,MATLAB 图像滤波去噪分析及其应用
  5. NYOJ-非洲小孩(贪心)
  6. Sentinel服务熔断只配置blockHandler_客户自定义限流处理_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0051
  7. .Net程序集强签名详解
  8. android 添加个人标签,android – 如何在标签标签上添加填充?
  9. T-SQL语言(二)
  10. java+整合handwrite_Java
  11. 微积分 --- 以e为底的指数函数(个人学习笔记)
  12. 在Debian中网卡的设置
  13. 将本地调试gdb移植到arm板
  14. (转)sqlserver 数据恢复方法
  15. layer打开弹窗时传递参数(content:)【layer弹窗插件】
  16. 腾讯云服务器基础操作
  17. 爱快 Open v服务端 全局推送路由器命令
  18. [Unity 学习] Unity 入门学习及第一个游戏
  19. 【matlab】画二维/三维散点图时用颜色及散点大小表示数据大小
  20. [笔记] GPGPU-SIM的使用说明(一)

热门文章

  1. 制作一个古诗词的html,徐汉峰笔迹2136.诗词高手制作出万能词汇表.
  2. 《魔兽世界》10个让你感动流泪的故事_马立杰_新浪博客
  3. qrcode.js生成微信二维码
  4. Android面试题(25)-Bundle机制
  5. Excel中的小技巧amp;大智慧
  6. ssm微信小程序美容理发店预约系统app——计算机毕业设计
  7. 【优化覆盖】基于matlab粒子群算法优化无人机编队布局求解车载网络通信覆盖优化问题【含Matlab源码 2021期】
  8. s00devs_Devs @ Home –现场网络研讨会– CEST:4月30日13:00:Hibernate提示和技巧–解决常见问题的15条提示
  9. 抖音一个老人和一个机器人歌曲_《抖音》多年以后有个可爱老头歌曲分享
  10. 认识VF--Visual FoxPro 漫谈(轉)