javaftp服务器:如何用Java实现FTP服务器来源: 发布时间:星期一, 2009年2月23日 浏览:0次 评论:0
FTP 命令 FTP 主要操作都是基于各种命令基础的上常用命令有: ◆ 设置传输模式它包括ASCⅡ(文本) 和BINARY 2进制模式; ◆ 目录操作改变或显示远程计算机当前目录(cd、dir/ls 命令); ◆ 连接操作open命令用于建立同远程计算机连接;close命令用于关闭连接; ◆ 发送操作put命令用于传送文件到远程计算机;mput 命令用于传送多个文件到远程计算机; ◆ 获取操作get命令用于接收个文件;mget命令用于接收多个文件 编程思路 根据FTP 工作原理在主中建立个服务器套接字端口等待客户端请求旦客户端请求被接受服务器就建立个服务器分线程处理客户端命令如果客户端需要和服务器端进行文件传输则建立个新套接字连接来完成文件操作 编程窍门技巧介绍说明 1.主设计 在主中完成服务器端口侦听和服务线程创建我们利用个静态串变量initDir 来保存服务器线程运行时所在工作目录服务器工作目录是由运行时用户输入缺省为C盘根目录 具体代码如下: public ftpServer extends Thread{ private Socket Client; private counter; private String initDir; public void (String args){ (args.length != 0) { initDir = args[0]; }{ initDir = "c:";} i = 1; try{ .out.prln("ftp server started!"); //监听21号端口 ServerSocket s = ServerSocket(21); for(;;){ //接受客户端请求 Socket incoming = s.accept; //创建服务线程 ftpServer(incoming,i).start; i; } }catch(Exception e){} } 2. 线程类设计 线程类主要设计都是在run思路方法中实现用run思路方法得到客户端套接字信息根据套接字得到输入流和输出流向客户端发送欢迎信息 3. FTP命令处理 (1) 访问控制命令 ◆ user name(user) 和 password (pass) 命令处理代码如下: (str.startsWith("USER")){user = str.sub(4);user = user.trim;out.prln("331 Password");}(str.startsWith("PASS"))out.prln("230 User "+user+" logged in."); User 命令和 Password 命令分别用来提交客户端用户输入用户名和口令 ◆ CWD (CHANGE WORKING DIRECTORY) 命令处理代码如下: (str.startsWith("CWD")){String str1 = str.sub(3);dir = dir+"/"+str1.trim;out.prln("250 CWD command succesful");} 该命令改变工作目录到用户指定目录 ◆ CDUP (CHANGE TO PARENT DIRECTORY) 命令处理代码如下: (str.startsWith("CDUP")){ n = dir.lastIndexOf("/");dir = dir.sub(0,n);out.prln("250 CWD command succesful");} 该命令改变当前目录为上层目录 ◆ QUIT命令处理代码如下: (str.startsWith("QUIT")) {out.prln("GOOD BYE");done = true;} 该命令退出及关闭和服务器连接输出GOOD BYE TAG: FTP Java JAVA java 服务器 0
相关文章读者评论发表评论 |