JAVA实现ftp服务端_用 java 实现FTP SERVER(附源码)
前面用 PYTHON 實(shí)現(xiàn)了一個(gè) ftp server(參考這里) ,有朋友問(wèn)有沒(méi)有java版本的,其實(shí)說(shuō)白了,ftp 也就是 tcp/ip 協(xié)議的一個(gè)應(yīng)用而已,而tcp/ip 基本都是通過(guò)socket來(lái)傳輸指令或數(shù)據(jù),只要客戶端和服務(wù)端定義好溝通協(xié)議就好了。FTP 是有一套標(biāo)準(zhǔn)的,只要按這套標(biāo)準(zhǔn)去做,就可以實(shí)現(xiàn)一個(gè)FTP服務(wù)器。
下面的程序?qū)崿F(xiàn)了一套簡(jiǎn)單的基于java的ftp server,你可以自己加上自己需要的東西,暫時(shí)這個(gè)FTP SERVER 有如下功能:
1 一個(gè)實(shí)現(xiàn)了的ftp服務(wù)器基本功能程序,服務(wù)器的安全管理代碼還沒(méi)有開(kāi)發(fā),
但該程序已經(jīng)可以適用于網(wǎng)絡(luò)。
2 該ftp服務(wù)器還具有一些管理功能,主要是
針對(duì)用戶管理的,有如下命令:
list、listuser、adduser、deluser、help、?。
list 列出連接用戶信息
listuser 列出所有用戶信息
adduser 新增用戶
deluser 刪除用戶
help 顯示幫助,列出以上指定
“?” 同help功能相同
3 關(guān)于用戶的權(quán)限設(shè)置,還未開(kāi)發(fā),因此所有登陸的用戶的都具有最高權(quán)限,
4 有2個(gè)缺省用戶:
user:jxd password:111
user:good password:public
5 用戶信息在同目錄下的user.cfg中,
注意用戶信息的書(shū)寫(xiě),一個(gè)用戶的信息占一行:
user|password|directory|
6 在eclipse下新建一Java項(xiàng)目 將FtpServer.java放入你所建的項(xiàng)目文件夾下,
并將user.cfg配制文件放入該項(xiàng)目文件夾下。
編譯運(yùn)行FtpServer.java 服務(wù)啟動(dòng)
會(huì)顯示 “ftp server started!”
服務(wù)啟動(dòng) 即可操作指令。(部分操作指令見(jiàn)附件。)
7 客戶端可以通過(guò)本地機(jī)操作系統(tǒng)自帶Ftp客戶端連接 ftp server.
具體操作:
開(kāi)始->運(yùn)行
輸入 "cmd" 調(diào)出控制臺(tái)
在控制臺(tái)輸入 ftp 192.168.1.104
即可連接 。
當(dāng)連接成功會(huì)顯示Connection to 192.168.1.104 //192.168.1.104為服務(wù)器的IP
并提示你當(dāng)前登入服務(wù)器的人數(shù)。
然后輸入你要操作的指令(部分操作指令見(jiàn)附件。)
當(dāng)連接不成功則會(huì)顯示 Unknown host 192.168.1.104
服務(wù)器端的部分指令例子:->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) 版權(quán)所有 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 字節(jié),用時(shí) 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
源代碼,打包如下,有興趣的可以下載:
點(diǎn)擊下載此文件
總結(jié)
以上是生活随笔為你收集整理的JAVA实现ftp服务端_用 java 实现FTP SERVER(附源码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 桶装水多少钱一桶啊?
- 下一篇: windows java 小程序_JAV