JAVA实现ftp服务端_用 java 实现FTP SERVER(附源码)
前面用 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
源代碼,打包如下,有興趣的可以下載:
點擊下載此文件
總結
以上是生活随笔為你收集整理的JAVA实现ftp服务端_用 java 实现FTP SERVER(附源码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 桶装水多少钱一桶啊?
- 下一篇: windows java 小程序_JAV