资源简介
解析FTP协议命令,实现FTP端的下载和上传文件功能
代码片段和文件信息
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
相关资源
- Uploadify HTML5 收费版本($5) UploadFiv
- commons-fileupload.jar和commons-io.jar
- java文件上传案例
- 泛泰binx和ota升级包工具Android版
- 基于java的uploadify上传demo
- jieba-0.42.1.tar
- js调用本地摄像头拍照并上传到web服务
- Pinyin4j jar包
- Jsch jar包
- JSP使用C标签时必须引入的jar包,jst
- DiskFileItemFactory需要的jar包commons-file
- jd-gui(1).exe
- Rxjava+ReTrofit+okHttp深入浅出-终极封装三
- zxing 扫描
- JDK各种版本地址
- Android 多文件进度条
- ueditor-1.1.2.jar自定义文件上传和图片回
- 真实可用的安卓手机屏幕录屏录制,
- 正版smalidea-0.0.5.zip,在android studio中安
- 强大的flash头像上传插件(支持旋转、
-
Axm
lPrinter2.jar - mysql驱动jar文件
- apache-cxf-2.2.8地址
- c3p0-0.9.5
-
Axm
lPrinter2.2.0.jar - Java工程师简历模板
- 批量上传图片并生成缩略图java实现
- tools-1.8.0.jar包
- jsoup-1.8.1.jar
- pinyin4j-2.5.0.jar 免费最新版工具
评论
共有 条评论