版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaFTP协议网络编程技术1 第6章 Java FTP 协议网络编程 JavaFTP协议网络编程技术2 FTP 是 TCP/IP 协议组中的协议之一,是英 文 Protocol的缩写。该协议是Internet文件传送的基础, 它由一系列规格说明文档组成,目标是提高文件的共 享性,提供非直接使用远程计算机,使存储介质对用 户透明和可靠高效地传送数据。简单的说,FTP就是完 成两台计算机之间的拷贝,从远程计算机拷贝文件至 自己的计算机上,称之为“下载(download)”文件。 若将文件从自己计算机中拷贝至远程计算机上,则称 之为“上载(upload)”文件。在TCP/IP协议中,FTP 标准
2、命令TCP端口号为21,Port方式数据端口为20。 6.16.1 FTP 协议 JavaFTP协议网络编程技术3 6.2FTP服务器和客户端 n同大多数Internet服务一样,FTP也是一个客户/服务器 系统。用户通过一个客户机程序连接至在远程计算机上运行 的服务器程序。依照FTP协议提供服务,进行文件传送的 计算机就是FTP服务器,而连接FTP服务器,遵循FTP协议 与服务器传送文件的电脑就是FTP客户端。用户要连上FTP 服务器,就要用到FPT的客户端软件,通常Windows自带 “ftp”命令,这是一个命令行的FTP客户程序,另外常用 的FTP客户程序还有Cute、Flashfxp、
3、LeapFTP、流星雨- 猫眼等。 JavaFTP协议网络编程技术4 6.3 FTP 协议应用 n通过FTP应用程序可以在Internet上 实现远程文件传输 n文件下载:从远程主机本地计算机 n文件上传:从本地计算机远程主机 JavaFTP协议网络编程技术5 6.4 FTP命令的使用 n常用的FTP命令 nftp rename 将远程主机上的文件改名 nftp cd 改变工作目录 nftp mkdir 在远程主机创建子目录 nftp binary 指定以二进制方式传送 nftp ascii 指定以ASCII方式传送 nftp ! 在不断线的情况下,执行本地命令 nftp pwd 查阅远程主机
4、的当前目录 nftp quit 结束联机,关闭所有已打开的连接 nftp help 显示帮助信息 JavaFTP协议网络编程技术6 n1、登录、登录FTP服务器服务器 n方法一:输入命令 n其中host是FTP服务器的域名或IP地址。如: n启动FTP后,命令提示符变为ftp n方法二:先输入命令 ftp 启动FTP,再用命令 open host 登录服务器。 如: nC:ftp n登录时先是显示一些欢迎信息,然后会要求输入用户名和密码,比如匿名 登录服务器: n nUser:anonymous n331 User name okay,please send complete E-mail a
5、ddress as password nPassword: n230 User logged in,proceed nftp n注意:在输入密码时,屏幕没有任何显示,但已经输入了,不要认为出错。 登录成功后就可以访问FTP服务器上的文件了。 n如果由于用户名或密码错误导致登录失败,可以用user命令重新登录。 JavaFTP协议网络编程技术7 n2、查看、查看FTP服务器上的文件服务器上的文件 ndir 命令:显示目录和文件列表。 nls 命令:显示简易的文件列表。 ncd 命令:进入指定的目录。 ndir命令可以使用通配符“*”和“?”,比如,显示当前目录中所 有扩展名为jpg的文件,可使用
6、命令 dir *.jpg。 ncd命令中必须带目录名。比如 cd main 表示进入当前目录下 的main子目录,cd . 表示退回上一级子目录。 JavaFTP协议网络编程技术8 n3、下载文件、下载文件 n上传和下载文件时应该使用正确的传输类型,FTP的传输类型分为ASCII 码方式和二进制方式两种,对.txt、.htm等文件应采用ASCII码方式传输, 对.exe或图片、视频、音频等文件应采用二进制方式传输。在默认情况 下,码传输方式。 ntype 命令:查看当前的传输方式。 nascii 命令:设定传输方式为ASCII码方式。 nbinary 命令:设定传输方式为二进制方式。 n以上命
7、令都不带参数。 nget 命令:下载指定文件。 nget命令的格式:get newname,为下载的FTP服务器上的文件名, newname为保存在本地计算机上时使用的名字,如果不指定newname, 文件将以原名保存。 nget命令下载的文件将保存在本地计算机的工作目录下。该目录是启动 FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以 使用 lcd 命令。比如:lcd d: 表示将工作目录设定为D盘的根目录。 nmget 命令:下载多个文件。 nmget命令的格式:mget 。 nmget命令支持通配符“*”和“?”,比如:mget *.mp3 表示下载FTP服务器 当前
8、目录下的所有扩展名为mp3的文件。 JavaFTP协议网络编程技术9 n4、上传文件 nput 命令:上传指定文件。 nput命令的格式:put newname,为上传的本地 文件名,newname为上传至FTP服务器上时使用的 名字,如果不指定newname,文件将以原名上传。 n上传文件前,应该根据文件的类型设置传输方式, 本机的工作目录也应该设置为上传文件所在的目录。 n5、结束并退出FTP nclose 命令:结束与服务器的FTP会话。 nquit 命令:结束与服务器的FTP会话并退出FTP环境。 JavaFTP协议网络编程技术10 n6、其它FTP命令 npwd 命令:查看FTP服务
9、器上的当前工作目录。 nrename new 命令:重命名FTP服务器上的文 件。 ndelete 命令:删除FTP服务器上的文件。 nhelp cmd 命令:显示FTP命令的帮助信息, cmd是命令名,如果不带参数,则显示所有 FTP命令。 JavaFTP协议网络编程技术11 6.5. FTP的传输模式 nFTP 协议的任务是从一台计算机将文件传送 到另一台计算机,它与这两台计算机所处的 位置、联接的方式、甚至是是否使用相同的 操作系统无关。假设两台计算机通过 ftp协 议对话,并且能访问Internet, 你可以用ftp 命令来传输文件。每种操作系统使用上有某 一些细微差别,但是每种协议基
10、本的命令结 构是相同的。 nFTP的传输有两种方式:ASCII传输模式和二 进制数据传输模式。 JavaFTP协议网络编程技术12 ASCII传输方式 n 假定用户正在拷贝的文件包含的简单ASCII码文 本,如果在远程机器上运行的不是UNIX,当文件传 输时ftp通常会自动地调整文件的内容以便于把文件 解释成另外那台计算机存储文本文件的格式。 n 但是常常有这样的情况,用户正在传输的文件 包含的不是文本文件,它们可能是程序,数据库, 字处理文件或者压缩文件(尽管字处理文件包含的 大部分是文本,其中也包含有指示页尺寸,字库等 信息的非打印字符)。在拷贝任何非文本文件之前, 用binary 命令告
11、诉ftp逐字拷贝,不要对这些文件进 行处理,这也是下面要讲的二进制传输。 JavaFTP协议网络编程技术13 二进制传输模式 n 在二进制传输中,保存文件的位序,以便原始和拷贝的 是逐位一一对应的。即使目的地机器上包含位序列的文件是 没意义的。例如,macintosh以二进制方式传送可执行文件 到Windows系统,在对方系统上,此文件不能执行。 n 如果你在ASCII方式下传输二进制文件,即使不需要也 仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件 变得不能用。(在大多数计算机上,ASCII 方式一般假设每 一字符的第一有效位无意义,因为ASCII字符组合不使用它。 如果你传输二进制文
12、件,所有的位都是重要的。)如果你知 道这两台机器是同样的,则二进制方式对文本文件和数据文 件都是有效的。 JavaFTP协议网络编程技术14 6.6 Java FTP 协议网络编程 n1.用Java 类库 n2.用第3方类库 JavaFTP协议网络编程技术15 Java FTP类库 n类: n JavaFTP协议网络编程技术16 Java 第3方FTP类库 nJScape, iNet Factory n/n software, IP*Works: ipworks.Ftp nEnterprise Distributed Technologies, Java Library nIBM alphaW
13、orks, Suite nSourceForge, JFtp nThe Jakarta Project, Jakarta Commons/Net nJavaShop JNetBeans nFlorent Cueto, Java nBea Petrovicova, jFTP nThe Globus Project, Java CoG Kit JavaFTP协议网络编程技术17 6.7 Java Java JavaFTP协议网络编程技术18 n| n| n| JavaFTP协议网络编程技术19 构造方法有:构造方法有: npublic () npublic (String host) throws
14、 IOException npublic (String host, int port) throws IOException JavaFTP协议网络编程技术20 n主要方法主要方法 npublic void login(String login, String password) throws IOException npublic TelnetInputStream get(String ) throws IOException npublic TelnetOutputStream put(String ) throws IOException npublic TelnetInputStr
15、eam list() throws IOException npublic void cd(String path) throws IOException npublic void ascii() throws IOException npublic void binary() throws IOException npublic void closeServer() throws IOException JavaFTP协议网络编程技术21 Java FTP 工作工作流程流程 JavaFTP协议网络编程技术22 nJava APIJava API与与 FTP FTP命令对照命令对照: n指令指
16、令 nloginloginUSER USER nPASS PASS ngetgetRETR RETR nputputSTOR STOR nlistlistLIST LIST ncdcdCWD CWD nasciiasciiTYPE ATYPE A nbinarybinaryTYPE ITYPE I ncloseServercloseServerQUITQUIT JavaFTP协议网络编程技术23 Java FTP 客户端编程程序例 nimport nimport nimport nimport npublic class n ; npublic void connectServer(Strin
17、g server, String user, String password, nString path) throws IOException n = new (); n(server); n(user, password); nif (path.length() != 0) n(path); n(); n JavaFTP协议网络编程技术24 npublic long upload(String , String newname) throws Exception nlong result = 0; n/ ftp输出流 nTelnetOutputStream os = null; n is
18、= null; ntry nnew nif (!() nreturn -1; nif () = 0) nreturn -2; nos = (newname); nresult = (); nis = new (); nbyte bytes = new byte1024; nint c; nwhile (c = is.read(bytes) != -1) nos.write(bytes, 0, c); n n finally nif (is != null) nis.close(); n nif (os != null) nos.close(); n n nreturn result; n Ja
19、vaFTP协议网络编程技术25 npublic long upload(String ) throws Exception nString newname = ; nif (/) -1) nnewname = (/) + 1); n else nnewname = ; n nreturn upload(, newname); n npublic long download(String , String new) throws Exception nlong result = 0; nTelnetInputStream is = null; n os = null; ntry nis = ()
20、; nnew nos = new (outfile); nbyte bytes = new byte1024; nint c; JavaFTP协议网络编程技术26 nwhile (c = is.read(bytes) != -1) nos.write(bytes, 0, c); nresult = result + c; n n catch (IOException e) ne.printStackTrace(); n finally nif (is != null) nis.close(); n nif (os != null) nos.close(); n n nreturn result
21、; n npublic List get(String path) nList list = new ArrayList(); ntry nDataInputStream dis = new DataInputStream(path); nString = ; nwhile ( = dis.readLine() != null) nlist.add(); n n catch (Exception e) ne.printStackTrace(); n nreturn list; n JavaFTP协议网络编程技术27 npublic void closeServer() throws IOException ntry nif ( != null) n(); n n catch (IOException e) ne.printStackTrace(); n n npublic static void main(String args) throws Exception n ftp = new (); ntry nSystem.out.println(ok1); n/(ddd); nSys
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内科常见症状护理技巧
- (正式版)DB37∕T 1639.20-2021 《山东省重点工业产品用水定额 第20部分:皮革、毛皮、羽毛及其制品业重点工业产品》
- 低血糖与糖尿病的关系
- 小学语文《索桥的故事》
- 鑫梓豪固废资源综合利用项目环境影响评价报告表
- 江苏省南京市玄武2025-2026学年初三二模冲刺(4)英语试题含解析
- 云南省云南昆明市盘龙区2026届初三年级物理试题月考试卷含解析
- 浙江省嘉兴市秀洲片区2026届中考第二次模拟考试英语试题文试题含解析
- 江苏省常州市武进区达标名校2025-2026学年高中毕业班初三第二次调研测试语文试题含解析
- 茂名市重点中学2025-2026学年初三下学期第二次阶段性考试综合试题含解析
- 室内装修预算与工程量清单模板
- 2026年1月浙江省高考(首考)英语试题(含答案)+听力音频+听力材料
- 高碳资源的低碳化利用技术 课件 第3章 煤炭的低碳化利用
- 工业厂房工程技术标
- 2026年河南地矿职业学院单招职业适应性测试题库含答案详解
- 护理人员心理健康与情绪管理
- 2026年湖州职业技术学院单招职业倾向性测试模拟测试卷附答案
- 2026届广东省深圳市高三一模语文试卷
- 旧楼加装电梯的具体施工方案
- DB32-T 5223-2025 高标准农田建设项目规划设计技术规程
- 2025至2030海洋工程用钢行业项目调研及市场前景预测评估报告
评论
0/150
提交评论