第14章-FTP服务器课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第14章-FTP服务器课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 14 FTP 服务器 课件
- 资源描述:
-
1、Software Engineering第第14章章 FTP服务器服务器FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议。在Internet上通过FTP 服务器可以进行文件的上传(Upload)或下载(Download)。FTP是实时联机服务,在使用它之前必须是具有该服务的一个用户(用户名和口令),工作时客户端必须先登录到作为服务器一方的计算机上,用户登录后可以进行文件搜索和文件传送等有关操作,如改变当前工作目录、列文件目录、设置传输参数及传送文件等。使用FTP可以传送所有类型的文件,如文本文件、二进制可执行文件、图象文件、声音文件和
2、数据压缩文件等。Network ProgrammingSoftware Engineering14.1 FTP工作原理工作原理 FTP采用C/S(客户端/服务器)模式进行通信,但与其他的C/S模式网络通信协议又有一个很大的区别。通常在进行HTTP通信或是TELNET通信的时候,只需要一个端口进行通信。用户从头到尾都只需使用这个端口。但是FTP通信除了有一个默认端口21主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一
3、个IP地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP地址和一个非标准端口。Network ProgrammingSoftware Engineering14.1 FTP工作原理工作原理 FTP(File Transfer Protoco l是文件传输协议的简称。用于工nternet上的控制文件的双向传输。同时,它也是一个应用程序。用户可以通过它把自己机器与世界各地所有运行FTP协议的服务器相连,访问服务器上的资源和信息。当启动FTP从远程计算机拷贝文件时,事实上启动了两个程序:一个本地机器上的FTP客户端程序,它向FTP服务器提出拷贝文件的请求。另
4、一个是启动在远程计算机的上的FTP服务器程序,它响应请求把你指定的文件传送到你的计算机中。FTP采用“客户端/服务器”方式,用户要在自己的本地计算机上安装FTP客户端程序。Network ProgrammingSoftware Engineering14.1 FTP工作原理工作原理 从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/工P协议来传输文件。FTP协议采用客户端/服务器(Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命
5、令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Email地址作为口令,以便更好地对访问者进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载文件,而不允许上载文件。Network ProgrammingSoftware Engineering14.1 FTP工作原理工
6、作原理FTP工作模式 上图中用户PI开始控制连接,控制连接与Telnet协议很象。在开始阶段,标准FTP命令由用户PI产生并通过控制连接传送到服务器进程。服务器PI向用户PI返回标准应答。FTP命令指定数据连接参数和文件系统操作。用户DTP在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数据端口不必在开始FTP命令的机器上,但用户或用户FTP进程必须确定它在指定的数据端口上侦听。这个数据连接是全双工的。Network ProgrammingSoftware Engineering14.1 FTP工作原理工作原理FTP工作模式Network ProgrammingSoftwar
7、e Engineering14.1 FTP工作原理工作原理FTP传输模式 FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet,你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。Network ProgrammingSoftware Engineering14.2 ftpclient类类 在J2SE中提供了与客户端编程有关的Api,它就是.ft
8、p.FtpClient类,FtpClient类封装了FTP协议的相关指令与实现细节,提供了一系列的方法,这些方法涵盖了几乎所有ftp的功能使用FtpClient类设计FTP客户端程序可以让编程人员轻松地实现登录远程FTP服务器、浏览服务器上的目录、设置传输协议、上传文件和下载文件等功能。FtpClient类的构造方法和主要方法如下:Network ProgrammingSoftware Engineering14.2 ftpclient类类1.Public FtpClient(String hostname)此构造函数利用给出的主机名建立一条FTP连接,使用默认端口号2.Public void
9、 openServer(String hostname)这个方法用于建立一条与指定主机上的FTP服务器的连接,使用默认端口号。3.Public void login(String username,String password)此方法利用参数username和password登录到FTP服务器。使用过Intemet的用户应该知道,匿名FTP服务器的登录用户名为anonymous,密码一般用自己的电子邮件地址。4.Public void binary():该命令可把传输格式设置为二进制格式。Network ProgrammingSoftware Engineering14.2 ftpclien
10、t类类在 JAVA 中利用ftpclient类 实现FTP服务器文件的上传,下载,删除功能。程序代码见WORD附件Network ProgrammingSoftware Engineering14.3 FTP命令命令大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出FTP命令,服务器程序执行用户所发出的FTP命令,并将执行的结果返回到客户机。FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS、Windows的命令行、LINUX、UN操作系统下都可以使
11、用FTP,都会遇到大量的FTP内部命令,熟悉并灵活应用FTP命令,可以大大方便使用者,并收到事半功倍之效。(注:只要安装了TCP/IP协议的机器就能使用ftp命令。ftp命令对大小写是敏感的。)Network ProgrammingSoftware Engineering14.3 FTP命令命令命令格式:ftp-v-d-i-n-g-s:filename-w:windowsizecomputer-v 不显示远程服务器响应-n 禁止第一次连接的时候自动登陆-i 在多个文件传输期间关闭交互提示-d 允许调试、显示客户机和服务器之间传递的全部ftp命令-g 不允许使用文件名通配符,文件名通配符的意思是
12、说允许在本地文件以及路径名中使用通配字符-s:filename 指定包含ftp命令的文本文件。在ftp命令启动后将自动运行这些命令。在加的参数里不能有空格。-w:windowsize 忽略默认的4096传输缓冲区 computer 指定要连接的远程计算机的ip地址 Network ProgrammingSoftware Engineering14.3 FTP命令命令 FTP 的主要操作都是基于各种命令基础之上的。常用的命令有:设置传输模式,它包括ASC(文本)和BINARY 二进制模式;目录操作,改变或显示远程计算机的当前目录(cd、dir/ls 命令);连接操作,open命令用于建立同远程计
13、算机的连接;close命令用于关闭连接;发送操作,put命令用于传送文件到远程计算机;mput 命令用于传送多个文件到远程计算机;获取操作,get命令用于接收一个文件;mget命令用于接收多个文件。Network ProgrammingSoftware Engineering14.3 FTP命令命令基础命令基础命令 1、ASC(ASCll)、bin(BINARY)、IMAGE、TYPEASC切换传输模式为文字模式(只能用来传送DOC文件);BINARY切换传输模式为二进制模式(除文字文件外皆用此模式);IMAGE相当于BINARYTYPE让你更改或显示传输模式。Network Programm
14、ingSoftware Engineering14.3 FTP命令命令2、CD、CDUP、LCD、PWD、!CD改变当前工作目录,例如:CDPUB;CDUP回到上一层目录,相当于你打CD:LCD让你更改或显示LOCAL端的工作目录,例如:LCDTMP;PWD显示工作目录(REMOTE端):Network ProgrammingSoftware Engineering14.3 FTP命令命令3、OPEN、user name(user)和 password(pass)命令User 命令和 Password 命令分别用来提交客户端用户输入的用户名和口令。OPEN:连接到指定ftp服务器上,如open
15、 computer port 其中computer一般是远程计算机的ip地址,port不用说就是指定端口了 username:张三 password:123456 Network ProgrammingSoftware Engineering14.3 FTP命令命令4、GET、MGET、PUT、MPUT、RECV、SEND、GET下传文件;说明:把远程的文件拷贝到本地计算机上。如get remote-file local-file remote-file是指定要复制的文件,local-file是指定本地计算机上的文件名,没有指定的话则与remote-file同名。MGET批量下传文件,说明:将
16、多个远程文件复制到本地计算机.例如:MGET*GZ;PUT上传文件;说明:将本地文件复制到远程计算机中,如put local-file remote-file 其中local-file是指定要复制的本地文件,remote-file是指定要复制的远程计算机上的文件名,不指定的话是和本地计算机上的文件名同名.MPUT批量上传文件,说明:将本地文件复制到远程计算机.如mput local-files.RECV相当于GET(RECV为RECEIVE的简写):SEND相当于PUT。Network ProgrammingSoftware Engineering14.3 FTP命令命令5、LS、DIR、ML
17、S、MDIR、MKDIR、RMDIRLS显示远程目录的文件和子目录.如ls remote-directory local-file 其中remote-directory是指要查看的列表的目录,不指定的话显示的是当前工作目录。local-file是指定要保存列表的本地文件.不指定的话是在屏幕上输出.DIR:相当于LS。Network ProgrammingSoftware Engineering14.3 FTP命令命令mls 列多个远程目录的内容 MDIR相当于MLS;MKDIR像DOS下的MD(创建子目录)一样:RMDIR像DOS下的RD(删除子目录)一样。Network Programmin
18、gSoftware Engineering14.3 FTP命令命令举例说明ftp的命令行格式:(1)桌面-开始-运行 输入:ftp 成功显示:220 ProFTPD 12.4 Server(ProFTPD)ip地址username:张三 成功显示:331 Password required for 用户名password:123456 成功显示:230 User 用户名 logged in进入ftp运行环境 在ms-dos方式下的ftpNetwork ProgrammingSoftware Engineering14.3 FTP命令命令(2)ftp使用的内部命令cd:进入远程主机目录,改变到指
19、定的目录例如:ftpcd.退向根目录(cd后有空格)ftpcd path 进目录(目录名为path)get:将远程主机的文件传至本地硬盘,“下传”一个文件。例如:ftpget 1.htm d:ggg2.htm 下传文件一个文件。说明:远程主机当前目录的1.htm文件,复制到本地d盘的ggg目录中,并且文件名改为2.htm Network ProgrammingSoftware Engineering14.4 服务器程序设计服务器程序设计1、服务器主函数设计编程思路 根据FTP 的工作原理,在主函数中建立一个服务器套接字端口,等待客户端请求,一旦客户端请求被接受,服务器程序就建立一个服务器分线程
20、,处理客户端的命令。如果客户端需要和服务器端进行文件的传输,则建立一个新的套接字连接来完成文件的操作。Network ProgrammingSoftware Engineering14.4 服务器程序设计服务器程序设计public class ftpServer extends Thread private Socket socketClient;private int counter;private static String initDir;public static void main(String args)if(args.length!=0)initDir=args0;else in
21、itDir=c:;int i=1;Network ProgrammingSoftware Engineering14.4 服务器程序设计服务器程序设计try System.out.println(“ftp server started!”);/监听21号端口 ServerSocket s=new ServerSocket(21);for(;)/接受客户端请求 Socket incoming=s.accept();/创建服务线程 new ftpServer(incoming,i).start();i+;catch(Exception e)线程类的主要设计都是在run()方法中实现。用run()方
展开阅读全文