|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
FTP命令
FTP的次要操纵都是基于各类命令基本之上的。经常使用的命令有:
·设置传输形式,它包含ASCⅡ(文本)和BINARY二进制形式;
·目次操纵,改动或显现远程盘算机确当前目次(cd、dir/ls命令);
·毗连操纵,open命令用于创建同远程盘算机的毗连;close命令用于封闭毗连;
·发送操纵,put命令用于传送文件到远程盘算机;mput命令用于传送多个文件到远程盘算机;
·猎取操纵,get命令用于吸收一个文件;mget命令用于吸收多个文件。
编程思绪
依据FTP的事情道理,在主函数中创建一个服务器套接字端口,守候客户端哀求,一旦客户端哀求被承受,服务器程序就创建一个服务器分线程,处置客户真个命令。假如客户端必要和服务器端举行文件的传输,则创建一个新的套接字毗连来完成文件的操纵。
编程技能申明
1.主函数计划
在主函数中,完成服务器端口的侦听和服务线程的创立。我们使用一个静态字符串变量initDir来保留服务器线程运转时地点的事情目次。服务器的初始事情目次是由程序运转时用户输出的,缺省为C盘的根目次。
详细的代码以下:
publicclassftpServerextendsThread{
privateSocketsocketClient;
privateintcounter;
privatestaticStringinitDir;
publicstaticvoidmain(String[]args){
if(args.length!=0){
initDir=args[0];
}else{initDir="c:";}
inti=1;
try{
System.out.println("ftpserverstarted!");
//监听21号端口
ServerSockets=newServerSocket(21);
for(;;){
//承受客户端哀求
Socketincoming=s.accept();
//创立服务线程
newftpServer(incoming,i).start();
i++;
}
}catch(Exceptione){}
}
2.线程类的计划
线程类的次要计划都是在run()办法中完成。用run()办法失掉客户真个套接字信息,依据套接字失掉输出流和输入流,向客户端发送接待信息。
3.FTP命令的处置
(1)会见把持命令
·username(user)和password(pass)命令处置代码以下:
if(str.startsWith("USER")){
user=str.substring(4);
user=user.trim();
out.println("331Password");
}
if(str.startsWith("PASS"))
out.println("230User"+user+"loggedin.");
<p>
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架? |
|