<b>若何用Java实现FTP服务器</b>[Java编程]
本文“<b>若何用Java实现FTP服务器</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议.在Internet上通过FTP 服务器可以举行文件的上传(Upload)或下载(Download).FTP是及时联机服务,在利用它之前必须是具有该服务的一个用户(用户名和口令),工作时客户端必须先登录到作为服务器一方的计算机上,用户登录后可以举行文件搜索和文件传送等有关操作,如改变当前工作目录、列文件目录、设置传输参数及传送文件等.利用FTP可以传送全部范例的文件,如文本文件、二进制可履行文件、图象文件、声音文件和数据压缩文件等.
FTP 号令
FTP 的主要操作都是基于各种号令底子之上的.常用的号令有:
◆ 设置传输情势,它包含ASCⅡ(文本) 和BINARY 二进制情势;
◆ 目录操作,改变或显示远程计算机的当前目录(cd、dir/ls 号令);
◆ 衔接操作,open号令用于成立同远程计算机的衔接;close号令用于关闭衔接;
◆ 发送操作,put号令用于传送文件到远程计算机;mput 号令用于传送多个文件到远程计算机;
◆ 获得操作,get号令用于接纳一个文件;mget号令用于接纳多个文件.
编程思绪
按照FTP 的工作原理,在主函数中成立一个服务器套接字端口,等候客户端恳求,一旦客户端恳求被承受,服务器程序就成立一个服务器分线程,处理客户端的号令.假如客户端需求和服务器端举行文件的传输,则成立一个新的套接字衔接来完成文件的操作.
编程本领阐明
1.主函数计划
在主函数中,完成服务器端口的侦听和服务线程的成立.我们操纵一个静态字符串变量initDir 来保存服务器线程运行时所在的工作目录.服务器的初始工作目录是由程序运行时用户输入的,缺省为C盘的根目录.
具体的代码以下:
public class ftpServer extends Thread{ private Socket socketClient; private int counter; private static String initDir; public static void main(String[] args){ if(args.length != 0) { initDir = args[0]; }else{ initDir = "c:";} int i = 1; try{ System.out.println("ftp server started!"); //监听21号端口 ServerSocket s = new ServerSocket(21); for(;;){ //承受客户端恳求 Socket incoming = s.accept(); //成立服务线程 new ftpServer(incoming,i).start(); i++; } }catch(Exception e){} } |
2. 线程类的计划
线程类的主要计划都是在run()办法中实现.用run()办法得到客户端的套接字信息,按照套接字得到输入流和输出流,向客户端发送欢送信息.
3. FTP号令的处理
(1) 拜候掌握号令
◆ user name(user) 和 password (pass) 号令处理代码以下:
if(str.startsWith("USER")){ |
User 号令和 Password 号令辨别用来提交客户端用户输入的用户名和口令.
◆ CWD (CHANGE WORKING DIRECTORY) 号令处理代码以下:
if(str.startsWith("CWD")){ |
该号令改变工作目录到用户指定的目录.
◆ CDUP (CHANGE TO PARENT DIRECTORY) 号令处理代码以下:
if(str.startsWith("CDUP")){ |
该号令改变当前目录为上一层目录.
◆ QUIT号令处理代码以下:
if(str.startsWith("QUIT")) { |
该号令退出及关闭与服务器的衔接,输出GOOD BYE.
以上是“<b>若何用Java实现FTP服务器</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |