资源简介
解析FTP协议命令,实现FTP端的下载和上传文件功能
![](http://www.nz998.com/pic/33744.jpg)
代码片段和文件信息
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class FtpClient {
Socket socket;
InputStream ins;
OutputStream outs;
public FtpClient(Socket socket) throws IOException {
this.socket = socket;
this.ins=socket.getInputStream();
this.outs=socket.getOutputStream();
}
public void login(String userString passer) throws Exception{
byte[] temp0=new byte[512];
//得到FTP响应
int size=ins.read(temp0);
String s=new String(temp00size);
//输出响应
System.out.println(s);
String name=“USER “+user+“\r\n“;
//写入登录信息s
outs.write(name.getBytes());
outs.flush();
//服务器返回信息
size=ins.read(temp0);
//输出:
s=new String(temp00size);
System.out.println(s);
//密码
String pass=“PASS “+passer+“\r\n“;
//写入密码
outs.write(pass.getBytes());
//得到返回信息
size=ins.read(temp0);
s=new String(temp00size);
System.out.println(s);
Scanner sc2=new Scanner(System.in);
System.out.println(“请选择是上传还是下载(输入1为下载,2为上传):“);
int Choose=sc2.nextInt();
if(Choose==1){
this.download();
}else if(Choose==2){
this.upload();
}else{
System.out.println(“输入错误!!good bye!“);
}
}
public Socket getPort() throws Exception{
//写入FTP模式取得端口,并链接
byte[] temp=new byte[1024];
int size=0;
String s;
outs.write(“PASV \r\n“.getBytes());
//服务器返回信息
size=ins.read(temp);
s=new String(temp0size);
System.out.println(s);
String[] ports=s.split(““);
//取得数据传输端口
String lastport=ports[5].substring(0 (ports[5].length()-3));
int port=Integer.valueOf(ports[4])*256+Integer.valueOf(lastport);
//链接服务器数据传输端口获得数据传输的输入输出流
Socket so=new Socket(“172.18.24.3“port);
return so;
}
public void download() throws Exception {
//写入FTP模式
byte[] temp=new byte[1024];
int size=0;
Socket so=getPort();
InputStream input=so.getInputStream();
OutputStream output=so.getOutputStream();
//控制台输入下载命令
Scanner sc3=new Scanner(System.in);
System.out.println(“请输入下载的文件名(用户根目录E盘):“);
String name=sc3.nextLine();
//服务器上的文件
// File srcfile=new File(“F:/“+name);
//下载到的地方
File dstfile=new File(“D:/“+name);
// FileInputStream fin=new FileInputStream(srcfile);
FileOutputStream fout=new FileOutputStream(dstfile);
String downName=“RETR “+name+“\r\n“;
outs.write(downName.getBytes());
outs.flush();
//服务器返回信息
size=ins.read(temp);
//输出:
String s2=new String(temp0size);
System.out.println(s2);
while((size=input.read(temp))!=-1){
fout.write(temp 0 size);
fout.flush();
}
System.out.println(“文件下载成功!默认在D盘.“);
//写入退出命令
outs.write(“quit“.getBytes());
//读出返回信息
size=ins.read(temp);
//打印
socket.close();
String quit=new String(temp0size);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4804 2010-04-22 19:12 FTPclinet\FtpClient.java
目录 0 2010-04-22 19:12 FTPclinet
----------- --------- ---------- ----- ----
4804 2
相关资源
- mysql jsp网站源码下载
- java编写的迅雷下载器
- 扫描二维码 JAVA实现20190403
- Vue项目实现手机端上传图片,使用于
- Android多线程文件夹及断点续传
- java实现生成Excel默认.xls,可自己修改
- JSP多文件上传同时上传
- AndroidStudio插件配置
- PHP头像上传预览剪切组件 v2.11.rar
- Android图片上传头像裁切+原图原样
- java实现Socket方式文件批量传输/上传到
- 批量将现有Jar包上传到Maven私服
- ajax上传图片
- maven+ssm 实现java版视频上传预览
- cropper插件截图并上传
- JavaWeb中文件上传最强工具类
- antlr-2.7.6.jar,antlr-2.7.6.jar
- easyUI+jsp电子仓库管理系统
- 批量上传 jar包到maven 私服
- Java项目源码下载151657
- java ssh上传文件代码
- java_分段上传_断点续传_超大附件上传
- 简单的android项目(用户名:admin密码
- webView选择图片并上传
- javaEE上传文件和参数
- javaEE上传文件
- creator实现调用android相机相册,并实现
- Android 上传头像自定义剪切、平移,缩
- Android游戏源码带详细注释的水果消消
- Android应用源码手机点餐下单项目源码
评论
共有 条评论