ftp服务器java_用 java 实现FTP SERVER(附源码)

本文介绍了一种基于Java实现的简单FTP服务器,该服务器具备基本的FTP功能,并提供了如用户管理(添加、删除用户)等扩展操作。文章还给出了如何在Eclipse中编译运行服务器及如何使用本地FTP客户端进行连接的步骤。
摘要由CSDN通过智能技术生成

前面用 PYTHON 实现了一个 ftp server(参考这里) ,有朋友问有没有java版本的,其实说白了,ftp 也就是 tcp/ip 协议的一个应用而已,而tcp/ip 基本都是通过socket来传输指令或数据,只要客户端和服务端定义好沟通协议就好了。FTP 是有一套标准的,只要按这套标准去做,就可以实现一个FTP服务器。

下面的程序实现了一套简单的基于java的ftp server,你可以自己加上自己需要的东西,暂时这个FTP SERVER 有如下功能:

1 一个实现了的ftp服务器基本功能程序,服务器的安全管理代码还没有开发,

但该程序已经可以适用于网络。

2 该ftp服务器还具有一些管理功能,主要是

针对用户管理的,有如下命令:

list、listuser、adduser、deluser、help、?。

list 列出连接用户信息

listuser 列出所有用户信息

adduser 新增用户

deluser 删除用户

help 显示帮助,列出以上指定

“?” 同help功能相同

3 关于用户的权限设置,还未开发,因此所有登陆的用户的都具有最高权限,

4 有2个缺省用户:

user:jxd password:111

user:good password:public

5 用户信息在同目录下的user.cfg中,

注意用户信息的书写,一个用户的信息占一行:

user|password|directory|

6 在eclipse下新建一Java项目 将FtpServer.java放入你所建的项目文件夹下,

并将user.cfg配制文件放入该项目文件夹下。

编译运行FtpServer.java 服务启动

会显示 “ftp server started!”

服务启动 即可操作指令。(部分操作指令见附件。)

7 客户端可以通过本地机操作系统自带Ftp客户端连接 ftp server.

具体操作:

开始->运行

输入 "cmd" 调出控制台

在控制台输入 ftp 192.168.1.104

即可连接 。

当连接成功会显示Connection to 192.168.1.104 //192.168.1.104为服务器的IP

并提示你当前登入服务器的人数。

然后输入你要操作的指令(部分操作指令见附件。)

当连接不成功则会显示 Unknown host 192.168.1.104

服务器端的部分指令例子:->adduser

please enter username:jxd

enter password :public

enter the initial directory: d

->list

1:jxd From /192.168.1.104

->listuser

username workdirectory

ruan e:/incoming

wen d:/incoming

->?

adduser :add new user

deluser :delete a user

quit :quit

list :list all user connect to server

listuser : list all account of this server

help :show this help

->help

adduser :add new user

deluser :delete a user

quit :quit

list :list all user connect to server

listuser : list all account of this server

help :show this help

->deluser jxd

User jxd deleted

客户端指令例子:

ftp> ?

Commands may be abbreviated. Commands are:

! delete literal prompt send

? debug ls put status

append dir mdelete pwd trace

ascii disconnect mdir quit type

bell get mget quote user

binary glob mkdir recv verbose

bye hash mls remotehelp

cd help mput rename

close lcd open rmdir

ftp> !

Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

ftp> DELE dd.txt

250 Request file action ok,complete

ftp> literal

Command line to send

Usage: literal line to send.

ftp> prompt

Interactive mode Off .

ftp> send

Local file d:\22.txt

Remote file d:\incoming\22.txt

ftp> debug

Debugging On .

ftp> ls

---> PORT 192,168,1,104,5,244

200 Command okay

---> NLST

200 Command okay

ftp> put

Local file c:001.txt

Remote file d:\incoming

ftp> get 1222.txt

200 Command okay

150 Opening Binary mode data connection for d:\incoming/1222.txt

226 Transfer complete !

ftp> status

Connected to 192.168.1.104.

Type: ascii; Verbose: On ; Bell: Off ; Prompting: Off ; Globbing: On

Debugging: Off ; Hash mark printing: Off .

ftp> append

Local file c:\

Remote file d:\incoming

ftp> dir

200 Command okay

150 Opening ASCII mode data connection for /bin/ls.

d aa

- FtpServer.java

d mkd

226 Transfer complete !

ftp: 收到 31 字节,用时 0.00Seconds 31000.00Kbytes/sec.

ftp> mdelete

Remote files ff.txt

200 Command okay Change to ASCII mode

ftp> pwd

257 d:\incoming is current directory.

ftp> ascii

200 Command okay Change to ASCII mode

ftp> mdir

Remote files incoming\ff.txt

Local file c:\001.txt

output to local-file: c:\001.txt?

200 Command okay

226 Transfer complete !

ftp> recv

Remote file ff.txt

Local file C:\Documents and Settings\jxd

200 Command okay

150 Opening Binary mode data connection for d:\incoming/ff.txt

226 Transfer complete !

ftp> verbose

Verbose mode Off .

ftp> bye

C:\Documents and Settings\jxd>

ftp> hash

Hash mark printing On ftp: (2048 bytes/hash mark) .

ftp> mls

Remote files -

Local file -

200 Command okay

200 Command okay

ftp> remotehelp

200 Command okay

ftp> cd

Remote directory d:\incoming

250 Requested file action okay, directory change to d:\incoming

ftp> help

Commands may be abbreviated. Commands are:

! delete literal prompt send

? debug ls put status

append dir mdelete pwd trace

ascii disconnect mdir quit type

bell get mget quote user

binary glob mkdir recv verbose

bye hash mls remotehelp

cd help mput rename

close lcd open rmdir

ftp> mput

Local files c:\001.txt

mput c:\001.txt?

200 Command okay

150 Opening Binary mode data connection for d:\incoming/001.txt

226 Transfer complete !

ftp> rename

From name d:\incoming\001.txt

To name 99.txt

226 Transfer complete !

ftp> Lcd

Local directory now C:\Documents and Settings\jxd.

ftp> open

Already connected to 192.168.1.104, use disconnect first.

ftp> rmdir

Directory name 目录名字

ftp> close

221 Service closing control connection

源代码,打包如下,有兴趣的可以下载:

点击下载此文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值