如何用java代码实现ftp文件上传import java.io.File;
【java写ftp代码 java ftpclient api】import java.io.FileInputStream;
import org.apache.commons.net.;
import org.apache.commons.net.;
public class test {
privateFTPClient ftp;
/**
*
* @param path 上传到ftp服务器哪个路径下
* @param addr 地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @return
* @throws Exception
*/
privateboolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
;
;
;
reply = ;
if (!FTPReply.isPositiveCompletion(reply)) {
;
return result;
}
;
result = true;
return result;
}
/**
*
* @param file 上传的文件或文件夹
* @throws Exception
*/
private void upload(File file) throws Exception{
if(file.isDirectory()){
(file.getName());
(file.getName());
String[] files = file.list();
for (int i = 0; ifiles.length; i) {
File file1 = new File(file.getPath() "\\" files[i] );
if(file1.isDirectory()){
upload(file1);
;
}else{
File file2 = new File(file.getPath() "\\" files[i]);
java中怎么实现ftp服务器学习java写ftp代码了计算机网络之后,利用java写java写ftp代码了一个ftp服务器 。
一、实现的ftp命令
实现了基本的user,pass,list,port,quit,retr,cwd,stor等命令
二、以上命令所对应的功能
对应的功能是:下载 , 上传 , 获取服务器目录,切换目录等
三、用于测试的ftp客户端:windows自带的ftp客户端
四、实现的思想
1、使用ServerSocket进行监听,每个控制连接的请求到来之后,开启一个线程进行处理(这里使用的java bio,效率较差,对于控制连接最好使用NIO处理,之后会再写个
nio的实现)
2、 对于命令使用工厂方法模式进行设计,当需要添加新的命令的时候,只需要添加一个新的命令类 , 实现相应接口,修改工厂产生逻辑,而不用修改其他的程序代码 。可
扩展性较好,同时符合开闭原则 。
五、实现过程中碰到的问题
1、对于tcp与socket的关系理解错误,以为所有的数据的输入都是要经过serverSocket().accept()方法 。其实,ServerSocket.accept()所对应的是tcp里面的三次握手建
立连接的阶段,之后的tcp的连接由客户端和服务器端的一对socket来维护 , 是属于establish阶段,在这个阶段,通信是全双工的,任何一方都能够发送数据 。
socket.close()对应的阶段是断开连接(四次挥手)的阶段 。
2、刚开始对于ftp协议不是很理解,不知道他的工作方式是怎样的 , 后来在看了tcp协议卷里面的ftp的内容之后 , 才知道ftp命令和应答码是关键 。eg:刚开始测试时,在
输入用户名之后 , 不会提示输入密码的 。原因:没有返回对应的应答码:331.另外要注意的是:返回的数据要以换行回车作为结束--\r\n.
六、代码列表
简单说明:
ftpServer:是服务器的主程序,入口 , 同时负责监听本地的21号端口 。
ControllerThread.java:用于处理控制连接的线程(每一个控制连接请求对应一个线程)ps:实在很浪费(流量小,连接多) 。
Share:一些全局性数据的维护 。
Command:是命令接口,定义了一个所有命令都要实现的方法 。
CommandFactory:命令工厂,通过传人的参数,决定生成的命令对象 。
UserCommand,PortCommand等:是具体ftp命令的实现
如何用java实现ftp客户端程序FTP 的主要操作都是基于各种命令基础之上的 。常用的命令有: · 设置传输模式java写ftp代码,它包括ASCⅡ(文本) 和BINARY 二进制模式; · 目录操作java写ftp代码,改变或显示远程计算机的当前目录(cd、dir/ls 命令); · 连接操作java写ftp代码,open命令用于建立同远程计算机的连接;close命令用于关闭连接; · 发送操作java写ftp代码,put命令用于传送文件到远程计算机;mput 命令用于传送多个文件到远程计算机; · 获取操作,get命令用于接收一个文件;mget命令用于接收多个文件 。编程思路 根据FTP 的工作原理 , 在主函数中建立一个服务器套接字端口,等待客户端请求,一旦客户端请求被接受 , 服务器程序就建立一个服务器分线程,处理客户端的命令 。如果客户端需要和服务器端进行文件的传输,则建立一个新的套接字连接来完成文件的操作 。编程技巧说明
java写ftp代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java ftpclient api、java写ftp代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 运行mongodb的命令,如何运行mongodb
- 手机游戏运行时看什么电视,手机游戏运行时看什么电视比较好
- 群晖虚拟机文件下载,群晖虚拟机安装
- nl命令linux linux nl命令
- chatgpt趣问趣答,趣问答赚钱
- 小米六适合什么手机壳颜色,适合小米6x的手机壳图片
- 泰国定妆粉饼直播卖货,泰国好用的粉饼有哪些
- c语言如何求函数式 c语言计算数学函数
- 区块链go编程语言,区块链可编程