求用java写一个ftp服务器客户端程序。

求用java写一个ftp服务器客户端程序。,第1张

import javaio;

import javanet;public class ftpServer extends Thread{ public static void main(String args[]){

String initDir;

initDir = "D:/Ftp";

ServerSocket server;

Socket socket;

String s;

String user;

String password;

user = "root";

password = "123456";

try{

Systemoutprintln("MYFTP服务器启动");

Systemoutprintln("正在等待连接");

//监听21号端口

server = new ServerSocket(21);

socket = serveraccept();

Systemoutprintln("连接成功");

Systemoutprintln("");

Systemoutprintln("");

InputStream in =socketgetInputStream();

OutputStream out = socketgetOutputStream();

DataInputStream din = new DataInputStream(in);

DataOutputStream dout=new DataOutputStream(out);

Systemoutprintln("请等待验证客户信息");

while(true){

s = dinreadUTF();

if(strim()equals("LOGIN "+user)){

s = "请输入密码:";

doutwriteUTF(s);

s = dinreadUTF();

if(strim()equals(password)){

s = "连接成功。";

doutwriteUTF(s);

break;

}

else{s ="密码错误,请重新输入用户名:";<br> doutwriteUTF(s);<br> <br> }

}

else{

s = "您输入的命令不正确或此用户不存在,请重新输入:";

doutwriteUTF(s);

}

}

Systemoutprintln("验证客户信息完毕"); while(true){

Systemoutprintln("");

Systemoutprintln("");

s = dinreadUTF();

if(strim()equals("DIR")){

String output = "";

File file = new File(initDir);

String[] dirStructure = new String[10];

dirStructure= filelist();

for(int i=0;i<dirStructurelength;i++){

output +=dirStructure[i]+"\n";

}

s=output;

doutwriteUTF(s);

}

else if(sstartsWith("GET")){

s = ssubstring(3);

s = strim();

File file = new File(initDir);

String[] dirStructure = new String[10];

dirStructure= filelist();

String e= s;

int i=0;

s ="不存在";

while(true){

if(eequals(dirStructure[i])){

s="存在";

doutwriteUTF(s);

RandomAccessFile outFile = new RandomAccessFile(initDir+"/"+e,"r");

byte byteBuffer[]= new byte[1024];

int amount;

while((amount = outFileread(byteBuffer)) != -1){

doutwrite(byteBuffer, 0, amount);break;

}break;

}

else if(i<dirStructurelength-1){

i++;

}

else{

doutwriteUTF(s);

break;

}

}

}

else if(sstartsWith("PUT")){

s = ssubstring(3);

s = strim();

RandomAccessFile inFile = new RandomAccessFile(initDir+"/"+s,"rw");

byte byteBuffer[] = new byte[1024];

int amount;

while((amount =dinread(byteBuffer) )!= -1){

inFilewrite(byteBuffer, 0, amount);break;

}

}

else if(strim()equals("BYE"))break;

else{

s = "您输入的命令不正确或此用户不存在,请重新输入:";

doutwriteUTF(s);

}

}

dinclose();

doutclose();

inclose();

outclose();

socketclose();

}

catch(Exception e){

Systemoutprintln("MYFTP关闭!"+e);

}

}}

以下这8个工具,从代码构建到错误挤压,覆盖Java开发的全域。学习这些工具可以帮助你改善代码质量,成为一个更高效的Java开发人员。

1Eclipse

尽管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有调查表明,Eclipse仍然是几乎半数Java开发人员首选的开发环境。 Eclipse是IDE领域的瑞士军刀,有着大量定制的接口和无数的插件。它无处不在,后面本文将推荐的其他所有工具都提供Eclipse插件。

Eclipse的工作流程可分为三个方面:工作台,工作空间和视角。工作台作为到IDE的出发点。工作空间将项目、文件和配置设置组合在一个单独的 目录下。视角定义工具、视图和有效设置。虽然新手开发人员可能会觉得相比Netbeans和IntelliJ IDEA,Eclipse使用起来更难,但Eclipse的灵活性,使其成为企业开发的首选IDE。

Luna,Eclipse的最新版本,支持Java 8、分屏编辑、新的黑色主题,以及一个功能齐全的命令行终端。

2Gradle

Gradle是一个自动化项目工具,建立在Apache Maven和Apache Ant的功能上。虽然Gradle并不是最流行的构建工具(最流行的是Maven,64%的Java开发人员会选择它),但它的普及速度很快。它也可作为默认的Android构建工具。

Gradle引以为傲的是它的简单。Gradle使用Groovy编程语言,与Maven和Ant使用XML语法截然相反。一个基本的Gradle构建文件由一行简单的代码组成:

apply plugin: 'java'

下面的命令会生成一个Gradle构建文件,创建项目文件的目录树,并附带一个项目便携式Gradle封装:

$ gradle init --type java-library

Gradle还有可用于添加新的语言,生成支持IDE的项目文件,构建本地二进制文档,检查依赖性更新等等的插件。

3Javadoc

Javadoc是Oracle提供的文档生成器。它可以将特殊格式的注释解析为HTML文档。以下截图就是Javadoc生成的Java SE 8 API规范:

Javadoc注释使用开放标签、关闭标签,以及一个或多个描述性标签的格式。开放式标签类似于标准Java多行注释标记,使用两个星号的除外。Javadoc也解析普通的HTML标签。

Javadoc自动格式化标签和关键字,除非另有规定。Javadoc广泛使用超链接,允许你参考和链接到代码的不同区域。许多IDE——包括 Eclipse——可以自动添加Javadoc注释模块到变量、类和方法中。支持Maven、Gradle和Ant的插件在编译代码的同时也可以构建 Javadoc HTML。

4JUnit

JUnit是用于编写和运行单元测试的开源框架。一个基本的JUnit测试包括测试类、测试方法、以及执行测试的功能。 JUnit使用标注来确定测试如何构造和运行。例如,如果你的程序有一个类叫做MathClass,具有乘法和除法的方法,你可以创建JUnit测试来检 查不符合预期的值。输入数字2和5到乘法方法,你希望得到的结果为10。当输入0作为除法方法的第二个参数时,你会期望给出一个数字计算异常的警告因为除 数不能为0:

@Test标注规定,MathClass方法是一个测试用例。 在JUnit提供额外的标注,比如@Before,这样你就可以在测试运行之前设置环境。 JUnit还可以设置规则用于定义测试方法的行为。例如,TemporaryFolder规则使得一旦测试完成,由测试创建的文件或文件夹就会被删除。

5Cobertura

Cobertura可用于分析Java代码的测试覆盖率。Cobertura根据没有被测试覆盖的代码生成基于HTML的报告。

Cobertura提供可用于插装、检查和测试代码的工具。通过监控可测试的代码,Cobertura允许你使用你选择的测试框架,甚至不需要测试框架就可以运行程序。

Cobertura根据行、分支和程序包三个方面给出代码覆盖报告。每个类别都有一个可自定义的阈值,如果覆盖面低于阈值,就会触发警告。Cobertura还集成了Maven和Gradle 的自动检测功能。

Mkyongcom提供了一个将Cobertura与Maven整合的示例。

6FindBugs

FindBugs是一个匹配编译代码模式,而非使用bug数据库的工具。当提供源代码时,FindBugs还可高亮显示检测出bug的代码行。

在它的301版本中,FindBugs继续保持着数以百计的bug描述。根据bug的严重程度,FindBugs将bug分为四个水平:相关 的,令人困扰的,可怕的,以及最可怕的。除了图形用户界面,FindBugs还提供一个命令行界面,Ant任务,以及Eclipse插件。

7VisualVM

包含在JDK中的VisualVM是监控和审查Java应用程序性能的工具。 VisualVM检测并重视活跃的JVM实例来检索有关进程的诊断信息。

VisualVM可以很容易地实时诊断性能问题。它提供了全套的分析工具,包括JConsole、jstack、jmap、jinfo和jstat等。此外,你还可以对JVM做一个快照,这样以后在任何时都能审查。

8Groovy

Groovy是一种编程语言,通过添加新的关键字,自动导入常用的类,以及可选类型变量声明,既简化又扩展了Java。

Groovy的核心优势之一是它的脚本功能。类可以被编译为Java字节码或使用Groovy Shell动态执行。Groovy的Java基础使得它相较于Jython和JRuby更容易为Java开发人员所接受。

WebLogic是美国Oracle公司出品的一个application server确切的说是一个基于JAVAEE架构的中间件,BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

WebLogic是美商Oracle的主要产品之一,系并购得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第一个成功商业化的J2EE应用服务器, 已推出到12c(1211) 版。而此产品也延伸出WebLogic Portal, WebLogic Integration等企业用的中间件(但当下Oracle主要以Fusion Middleware融合中间件来取代这些WebLogic Server之外的企业包),以及OEPE(Oracle Enterprise Pack for Eclipse)开发工具。

WebLogic最早由 WebLogic Inc 开发,后并入BEA 公司,最终BEA公司又并入 Oracle公司。

webserver是用来构建网站的必要软件。可用来解析、发布网页等功能,它是用纯java开发的。weblogic本来不是由bea发明的,是它从别人手中买过来,然后再加工扩展。BEA已经被Oracle收购,目前Weblogic最新版本为Oracle Weblogic Server 12c(1211)。其他J2EE Application Server还有IBM的websphere、Sun(Sun公司已经被ORACLE公司收购)的Glassfish、resin等。Apache Tomcat也是常用的Servlet/JSP Container。 国内厂商生产的还有像中创软件的Loong AS 90(达四级等保,全面支持国产)、东方通的Tongweb、金蝶Apusic应用服务器等。

BEA WebLogic Server拥有处理关键Web应用系统问题所需的性能、可扩展性和高可用性。

与BEA WebLogic Commerce ServerTM配合使用,BEA WebLogic Server可为部署适应性个性化电子商务应用系统提供完善的解决方案。

WebLogic长期以来一直被认为是市场上最好的J2EE工具之一。像数据库或邮件服务器一样,WebLogic Server 对于客户是不可见的,为连接在它上面的客户提供服务。WebLogic 最常用的使用方式是为在internet 或intranet 上的Web 服务提供安全、数据驱动的应用程序。WebLogic对J2EE 架构的支持:WebLogic Server 提供了对SUN J2EE 架构的支持。SUN公司的J2EE 架构是为企业级提供的一种支持分布式应用的整体框架。为集成后端系统,如ERP系统,CRM系统,以及为实现企业级计算提供了一个简易的,开放的标准。

跟tomcat类似的发布jsp运行的web服务器还有:

1、Resin

Resin提供了最快的jsp/servlets运行平台。在java和javascript的支持下,Resin可以为任务灵活选用合适的开发语言。Resin的一种先进的语言XSL(XML stylesheet language)可以使得形式和内容相分离。

2、Jetty

Jetty是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

3、WebLogic

BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

4、jboss

Jboss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,而不用支付费用。JBoss是一个管理EJB的容器和服务器,支持EJB 11、EJB 20和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 求用java写一个ftp服务器客户端程序。

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情