《Java网络编程技术》课件_第1页
《Java网络编程技术》课件_第2页
《Java网络编程技术》课件_第3页
《Java网络编程技术》课件_第4页
《Java网络编程技术》课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章JavaFTP协议网络编程1整理ppt第6章JavaFTP协议网络编程1整理ppt

FTP

TCP/IP

协议组中的协议之一,是英文File

Transfer

Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。6.1FTP协议2整理pptFTP

TCP/IP

协议组中的协议之一,是

6.2

FTP服务器和客户端同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照

FTP

协议提供服务,进行文件传送的计算机就是

FTP

服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上

FTP

服务器,就要用到

FPT

的客户端软件,通常

Windows自带“ftp”命令,这是一个命令行的

FTP

客户程序,另外常用的

FTP

客户程序还有

CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。3整理ppt6.2

FTP服务器和客户端同大6.3FTP协议应用通过FTP应用程序可以在Internet上实现远程文件传输文件下载:从远程主机→本地计算机文件上传:从本地计算机→远程主机4整理ppt6.3FTP协议应用通过FTP应用程序可以在Intern6.4FTP命令的使用常用的FTP命令ftp>

rename

将远程主机上的文件改名ftp>cd改变工作目录ftp>mkdir

在远程主机创建子目录ftp>binary

指定以二进制方式传送ftp>ascii

指定以ASCII方式传送ftp>!在不断线的情况下,执行本地命令ftp>pwd查阅远程主机的当前目录ftp>quit

结束联机,关闭所有已打开的连接ftp>help

显示帮助信息5整理ppt6.4FTP命令的使用常用的FTP命令5整理ppt1、登录FTP服务器方法一:输入命令ftphost其中host是FTP服务器的域名或IP地址。如:C:\>ftp启动FTP后,命令提示符变为ftp>方法二:先输入命令ftp启动FTP,再用命令openhost登录服务器。如:C:\>ftpC:\>open登录时先是显示一些欢迎信息,然后会要求输入用户名和密码,比如匿名登录服务器:C:\>ftp…………User:anonymous331Usernameokay,pleasesendcompleteE-mailaddressaspasswordPassword:230Userloggedin,proceedftp>注意:在输入密码时,屏幕没有任何显示,但已经输入了,不要认为出错。登录成功后就可以访问FTP服务器上的文件了。如果由于用户名或密码错误导致登录失败,可以用user命令重新登录。6整理ppt1、登录FTP服务器6整理ppt2、查看FTP服务器上的文件dir命令:显示目录和文件列表。ls命令:显示简易的文件列表。cd命令:进入指定的目录。dir命令可以使用通配符“*”和“?”,比如,显示当前目录中所有扩展名为jpg的文件,可使用命令dir*.jpg。cd命令中必须带目录名。比如cdmain表示进入当前目录下的main子目录,cd..表示退回上一级子目录。7整理ppt2、查看FTP服务器上的文件7整理ppt3、下载文件上传和下载文件时应该使用正确的传输类型,FTP的传输类型分为ASCII码方式和二进制方式两种,对.txt、.htm等文件应采用ASCII码方式传输,对.exe或图片、视频、音频等文件应采用二进制方式传输。在默认情况下,FTP为ASCII码传输方式。type命令:查看当前的传输方式。ascii命令:设定传输方式为ASCII码方式。binary命令:设定传输方式为二进制方式。以上命令都不带参数。get命令:下载指定文件。get命令的格式:getfilename[newname],filename为下载的FTP服务器上的文件名,newname为保存在本地计算机上时使用的名字,如果不指定newname,文件将以原名保存。get命令下载的文件将保存在本地计算机的工作目录下。该目录是启动FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以使用lcd命令。比如:lcdd:\表示将工作目录设定为D盘的根目录。mget命令:下载多个文件。mget命令的格式:mgetfilename[filename……]。mget命令支持通配符“*”和“?”,比如:mget*.mp3表示下载FTP服务器当前目录下的所有扩展名为mp3的文件。8整理ppt3、下载文件8整理ppt4、上传文件put命令:上传指定文件。put命令的格式:putfilename[newname],filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。上传文件前,应该根据文件的类型设置传输方式,本机的工作目录也应该设置为上传文件所在的目录。5、结束并退出FTPclose命令:结束与服务器的FTP会话。quit命令:结束与服务器的FTP会话并退出FTP环境。9整理ppt4、上传文件9整理ppt6、其它FTP命令pwd命令:查看FTP服务器上的当前工作目录。renamefilenamenewfilename命令:重命名FTP服务器上的文件。deletefilename命令:删除FTP服务器上的文件。help[cmd]命令:显示FTP命令的帮助信息,cmd是命令名,如果不带参数,则显示所有FTP命令。10整理ppt6、其它FTP命令10整理ppt6.5.FTP的传输模式FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet,你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。11整理ppt6.5.FTP的传输模式FTP协议的任务是从一台计算机将ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。12整理pptASCII传输方式假定用户正在拷贝的文件包含的简二进制传输模式

在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。13整理ppt二进制传输模式在二进制传输中,保存文件的位序,以便6.6JavaFTP协议网络编程1.用Java类库2.用第3方类库14整理ppt6.6JavaFTP协议网络编程1.用Java类库1JavaFTP类库类:FtpClient包:.ftp.*;

15整理pptJavaFTP类库类:FtpClient15整理pptJava第3方FTP类库JScape,iNetFactory:com.jscape.inet.ftp.Ftp/nsoftware,IP*Works:ipworks.FtpEnterpriseDistributedTechnologies,JavaFTPClientLibrary:.ftp.FTPClientIBMalphaWorks,FTPBeanSuite:tocol.FTPProtocolSourceForge,JFtp:.FtpConnectionTheJakartaProject,JakartaCommons/Net:.ftp.FTPClientJavaShopJNetBeans:jshop.jnet.FTPClientFlorentCueto,JavaFTPAPI:com.cqs.ftp.FTPBeaPetrovicova,jFTP:cz.dhl.ftp.FtpTheGlobusProject,JavaCoGKit:org.globus.io.ftp.FTPClient16整理pptJava第3方FTP类库JScape,iNetFact6.7JavaFTPAPI.ftp.FtpClient.NetworkClient.TelnetInputStream.TelnetOutputStream.ftp.FtpInputStream.TransferProtocolClient17整理ppt6.7JavaFTPAPI.ftp.F.ftp.FtpClient类 .Socket | +--.NetworkClient | +--.TransferProtocolClient | +--.ftp.FtpClient18整理ppt.ftp.FtpClient类 java.ne FtpClient构造方法有:publicFtpClient()publicFtpClient(Stringhost)throwsIOExceptionpublicFtpClient(Stringhost,intport)throwsIOException19整理ppt FtpClient构造方法有:19整理pptFtpClient主要方法publicvoidlogin(Stringlogin,Stringpassword)throwsIOExceptionpublicTelnetInputStreamget(Stringfilename)throwsIOExceptionpublicTelnetOutputStreamput(Stringfilename)throwsIOExceptionpublicTelnetInputStreamlist()throwsIOExceptionpublicvoidcd(Stringpath)throwsIOExceptionpublicvoidascii()throwsIOExceptionpublicvoidbinary()throwsIOExceptionpublicvoidcloseServer()throwsIOException20整理pptFtpClient主要方法20整理pptJavaFTP工作流程21整理pptJavaFTP工作流程21整理pptJavaAPI与FTP命令对照:

.ftp FTP指令 login USER<username> PASS<password> get RETR<filename> put STOR<filename> list LIST[<pathname>] cd CWD<pathname> ascii TYPEA binary TYPEI closeServer QUIT 22整理pptJavaAPI与FTP命令对照:22整理pptJavaFTP客户端编程程序例importjava.io.*;importjava.util.*;import.*;import.ftp.FtpClient;public

classFtpUtil{FtpClientftpClient;public

voidconnectServer(Stringserver,Stringuser,Stringpassword,Stringpath)throwsIOException{ftpClient=newFtpClient();ftpClient.openServer(server);ftpClient.login(user,password);if(path.length()!=0)ftpClient.cd(path);ftpClient.binary();}23整理pptJavaFTP客户端编程程序例importjava.ipublic

longupload(Stringfilename,Stringnewname)throwsException{longresult=0;//ftp输出流TelnetOutputStreamos=null;FileInputStreamis=null;try{java.io.Filefile_in=newjava.io.File(filename);if(!file_in.exists())return-1;if(file_in.length()==0)return-2;os=ftpClient.put(newname);result=file_in.length();is=newFileInputStream(file_in);byte[]bytes=new

byte[1024];intc;while((c=is.read(bytes))!=-1){os.write(bytes,0,c);}}finally{if(is!=null){is.close();}if(os!=null){os.close();}}returnresult;}24整理pptpubliclongupload(Stringfilepublic

longupload(Stringfilename)throwsException{Stringnewname="";if(filename.indexOf("/")>-1){newname=filename.substring(filename.lastIndexOf("/")+1);}else{newname=filename;}returnupload(filename,newname);}public

longdownload(Stringfilename,Stringnewfilename)throwsException{longresult=0;TelnetInputStreamis=null;FileOutputStreamos=null;try{is=ftpClient.get(filename);java.io.Fileoutfile=newjava.io.File(newfilename);os=newFileOutputStream(outfile);byte[]bytes=new

byte[1024];intc;25整理pptpubliclongupload(Stringfilewhile((c=is.read(bytes))!=-1){os.write(bytes,0,c);result=result+c;}}catch(IOExceptione){e.printStackTrace();}finally{if(is!=null){is.close();}if(os!=null){os.close();}}returnresult;}publicListgetFileList(Stringpath){Listlist=newArrayList();try{DataInputStreamdis=newDataInputStream(ftpCList(path));Stringfilename="";while((filename=dis.readLine())!=null){list.add(filename);}}catch(Exceptione){e.printStackTrace();}returnlist;}26整理pptwhile((c=is.read(bytes))!=public

voidcloseServer()throwsIOException{try{if(ftpClient!=null){ftpClient.closeServer();}}catch(IOExceptione){e.printStackTrace();}}public

static

voidmain(String[]args)throwsException{FtpUtilftp=newFtpUtil();try{ftp.connectServer("0","zlj","zlj","/ODBC");System.out.println("ok1");//ftp.createDir("ddd");System.out.println("ok2");System.out.println("filesize:"+ftp.upload("D:/dd.txt")+"字节");Listlist=ftp.getFileList(".");for(inti=0;i<list.size();i++){String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论