java实现ftp服务器实例.doc

java实现ftp服务器实例.doc

ID:49438360

大小:36.50 KB

页数:8页

时间:2020-03-01

java实现ftp服务器实例.doc_第1页
java实现ftp服务器实例.doc_第2页
java实现ftp服务器实例.doc_第3页
java实现ftp服务器实例.doc_第4页
java实现ftp服务器实例.doc_第5页
资源描述:

《java实现ftp服务器实例.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、-------------------------------------------------------java实现ftp服务器实例FTP命令FTP的主要操作都是基于各种命令基础之上的。常用的命令有:·设置传输模式,它包括ASCⅡ(文本)和BINARY二进制模式;·目录操作,改变或显示远程计算机的当前目录(cd、dir/ls命令);·连接操作,open命令用于建立同远程计算机的连接;close命令用于关闭连接;·发送操作,put命令用于传送文件到远程计算机;mput命令用于传送多个文件到远程计算机;·获取操作

2、,get命令用于接收一个文件;mget命令用于接收多个文件。编程思路根据FTP的工作原理,在主函数中建立一个服务器套接字端口,等待客户端请求,一旦客户端请求被接受,服务器程序就建立一个服务器分线程,处理客户端的命令。如果客户端需要和服务器端进行文件的传输,则建立一个新的套接字连接来完成文件的操作。编程技巧说明1.主函数设计在主函数中,完成服务器端口的侦听和服务线程的创建。我们利用一个静态字符串变量initDir来保存服务器线程运行时所在的工作目录。服务器的初始工作目录是由程序运行时用户输入的,缺省为C盘的根目录。具

3、体的代码如下:publicclassftpServerextendsThread{ privateSocketsocketClient;------------------------------------------------------- privateintcounter; privatestaticStringinitDir; publicstaticvoidmain(String[]args){  if(args.length!=0){   initDir=args[0];  }else{initDi

4、r="c:";}  inti=1;  try{   System.out.println("ftpserverstarted!");   //监听21号端口   ServerSockets=newServerSocket(21);   for(;;){    //接受客户端请求    Socketincoming=s.accept();    //创建服务线程    newftpServer(incoming,i).start();    i++;   }  }catch(Exceptione){}}2.线程类的设

5、计线程类的主要设计都是在run()方法中实现。用run()方法得到客户端的套接字信息,根据套接字得到输入流和输出流,向客户端发送欢迎信息。3.FTP命令的处理(1)访问控制命令·username(user)和password(pass)命令处理代码如下:-------------------------------------------------------if(str.startsWith("USER")){ user=str.substring(4); user=user.trim(); out.print

6、ln("331Password");}if(str.startsWith("PASS"))out.println("230User"+user+"loggedin.");1(未取到网页内容)User命令和Password命令分别用来提交客户端用户输入的用户名和口令。·CWD(CHANGEWORKINGDIRECTORY)命令处理代码如下:if(str.startsWith("CWD")){ Stringstr1=str.substring(3); dir=dir+"/"+str1.trim(); out.print

7、ln("250CWDcommandsuccesful");}该命令改变工作目录到用户指定的目录。·CDUP(CHANGETOPARENTDIRECTORY)命令处理代码如下:if(str.startsWith("CDUP")){ intn=dir.lastIndexOf("/"); dir=dir.substring(0,n);------------------------------------------------------- out.println("250CWDcommandsuccesful");}

8、该命令改变当前目录为上一层目录。·QUIT命令处理代码如下:if(str.startsWith("QUIT")){ out.println("GOODBYE"); done=true;}该命令退出及关闭与服务器的连接,输出GOODBYE。(2)传输参数命令·Port命令处理代码如下:if(str.startsWith("PORT")){ out.printl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。