# FTP client and server (use java socket)
**Authors:** muziyongshixin
**dependence**: intellij IDEA,jdk1.8,
- 本项目是使用java Socket编程实现的一个简单的FTP服务器和客户端。
- 客户端目前实现的功能是登录,刷新,上传和下载。同时具有主动模式和被动模式两种模式。
- 服务器端实现的功能有登录、刷新、上传、下载、列出文件列表、更换目录等
## 界面展示:
![主界面](https://github.com/muziyongshixin/FTP-client-and-server-use-JAVA/blob/master/pic/client.png?raw=true "主界面")
![文件选择界面](https://github.com/muziyongshixin/FTP-client-and-server-use-JAVA/blob/master/pic/dir_choose.png?raw=true"文件选择界面")
- ---
## 使用介绍:
### client:
- client文件夹里有三个文件,分别是是使用apache ftp实现的文件传输(ftp_by_apache.java),和用java socket实现的被动模式下的数据传输(ftp_by_me_passive.java),和java socket实现的主动模式下的数据传输(ftp_by_me_active.java)
- 如果你使用的是标准的ftp server,例如Home Ftp Server文件夹里的服务器端,你可以使用ftp_by_apache或者ftp_by_me_passive来实例化Frame_Main.java里的ftp成员变量。例如:
```
ftp=new Ftp_by_me_passive(FTP,username,password);
```
或者:
```
ftp=new Ftp_by_apache(FTP,username,password);
```
- 如果你使用的是本项目中的ftp server,那么建议你使用ftp_by_me_active.java来初始化ftp成员变量,因为本项目中的ftp server暂时还没有实现被动模式。即你应该这样初始化:
```
ftp=new Ftp_by_me_active(FTP,username,password);
```
其他具体细节可以直接查看代码,注释都比较清晰。
### server:
本项目中实现的ftp server,通过读取config文件夹下的server.xml文件来初始化。server.xml文件里纪录的是server的根目录,以及用户的信息。你需要配置一个自己电脑上有效的文件夹地址。
配置格式如下:
```
<config>
<rootDir>C:\Users\32706\Desktop\FTP\FTPServer</rootDir>
<users>
<user>
<username>admin</username>
<password>000000</password>
</user>
<user>
<username>admin1</username>
<password>111111</password>
</user>
</users>
</config>
```
1. 服务端程序通过serversocket监控客户端的连接请求,并实例化一个controllerThread对象来处理这个请求的所有消息。
2. 具体的消息处理是利用工厂模式来实例化一个具体的命令处理对象,得到客户端传递过来的消息后根据命令实例化不同的处理对象,从而实现对不同命令的处理。
3. 你可以根据自己的需求实现不同的命令和个性化的命令的处理。
-- -------
# 本项目主要是为了学习socket编程和FTP传输协议,同时使用了比较好的设计模式,从而能够有较好的的扩展性。但是其并不适合作为真正的FTP传输软件使用。)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
代码仅供参考学习! 代码仅供参考学习! 代码仅供参考学习! 本项目是使用java Socket编程实现的一个简单的FTP服务器和客户端。 客户端目前实现的功能是登录,刷新,上传和下载。同时具有主动模式和被动模式两种模式。 服务器端实现的功能有登录、刷新、上传、下载、列出文件列表、更换目录等 本项目是使用java Socket编程实现的一个简单的FTP服务器和客户端。 客户端目前实现的功能是登录,刷新,上传和下载。同时具有主动模式和被动模式两种模式。 服务器端实现的功能有登录、刷新、上传、下载、列出文件列表、更换目录等
资源推荐
资源详情
资源评论
收起资源包目录
ftp客户端和服务端交互.zip (68个子文件)
ftp客户端和服务端交互
pic
dir_choose.png 16KB
client.png 22KB
readme 34B
client
src
Ftp_by_me_passive.java 8KB
Ftp_by_me_active.java 7KB
Frame_Main.java 10KB
ButtonColumn.java 4KB
Ftp_by_apache.java 4KB
out
production
client
Ftp_by_apache.class 3KB
Frame_Main$4.class 1000B
Ftp_by_me_passive.class 7KB
Frame_Main$2.class 2KB
Frame_Main$3.class 2KB
Ftp_by_me_active.class 7KB
Frame_Main.class 6KB
Frame_Main$1.class 788B
ButtonColumn.class 5KB
libs
commons-net-3.0.1.jar 263KB
client.iml 663B
FTPServer
FTPServer.iml 726B
lib
jdom.jar 149KB
src
UserCommand.java 792B
PortCommand.java 786B
CommandFactory.java 693B
PassCommand.java 1KB
FtpServer.java 940B
Share.java 3KB
RetrCommand.java 2KB
Command.java 325B
PasvCommand.java 2KB
ControllerThread.java 5KB
StoreCommand.java 1KB
DirCommand.java 3KB
CwdCommand.java 858B
QuitCommand.java 445B
bin
ControllerThread.class 4KB
PortCommand.class 2KB
Command.class 173B
PassCommand.class 2KB
StoreCommand.class 2KB
QuitCommand.class 911B
DirCommand.class 3KB
FtpServer.class 1KB
RetrCommand.class 2KB
Share.class 3KB
CwdCommand.class 1KB
PasvCommand.class 2KB
CommandFactory.class 1KB
UserCommand.class 1KB
Settings.ini 681B
config
server.xml 223B
遇到的问题.docx 13KB
Home Ftp Server
support.html 3KB
ftp
test folder
test.txt 359B
root.txt 112B
HomeFtpServer.exe 807KB
HomeFtpServerFI.pdf 125KB
Readme-中关村在线ZOL.htm 3KB
HomeFtpServer.pdf 89KB
调试信息.docx 13KB
pics
2ftp_green.ico 766B
2ftp_gray.ico 766B
2ftp_red.ico 766B
2ftp_yellow.ico 766B
2ftp_downloading.ico 766B
2ftp_white.ico 766B
the_tindy_project.txt 285B
README.md 3KB
共 68 条
- 1
资源评论
梦回阑珊
- 粉丝: 2443
- 资源: 619
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功