• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用Internet Transfer编写FTP程

发布: 2007-6-21 21:57 | 作者: -  | 来源: VB编程乐园  | 查看: 17次 | 进入软件测试论坛讨论

领测软件测试网

    〕I贤娜硕级訤TP熟悉得不能再熟悉了,它是文件传输协议的英文缩写,所谓文件传输协议就是人们规定的在网络间传输文件的一组规定,里面规定了数据包的格式、数据包头部结构、命令结构等等。

其实要想实现FTP的功能并不是很难,下面我们就来介绍一下如何作一个简单的Windows界面的FTP程序。
  其实我们常用的VC和VB开发工具就可以轻松搞定,下面我们就来说说在VB中使用Microsoft Internet Transfer 控件实现FTP的功能。
  Internet Transfer控件,支持HTTP(超文本传输协议)和FTP(文件传输协议),超文本传输协议就是我们的浏览器传输网页时使用的协议,也就是说你也可以用它作一个浏览器。我们这里主要讨论文件传输协议FTP。
  首先创建一个新工程,在你的工具箱上添加Microsoft Internet Transfer 控件,并放到你的主窗体上,注意看它的属性:
  Protocol指所用的协议,我们这里选2-icFTP,就是FTP协议。
  UserName和Password是这样的:UserName和Password都给null或“"时,发送到FTP Server的UserName是“anonymous",Password是用户的Email,当UserName给null或“",而Password为非空字符串时是错误的,其他情况正常。
  RemoteHost写FTP Server(就是你要连到的那台主机,你可以在程序中动态地给这个属性赋值,以适应连接到不同的主机上)的域名地
  址或IP,RemotePort在你指定FTP协议时自动被设置成21,URL属性由RemoteHost、RemotePort、Protocol等几个属性内容组合而成,如果前面已经给出这些值,VB会自动生成URL,以上这些属性均可以在程序中动态赋值,使你可以更灵活地运用这个控件。
  下面说说这个控件的方法(Method):
  1、OpenURL,调用该方法会连通FTP Server属性中指定的主机,并返回它的Welcom Message,一般是一些欢迎词和当前有多少用户登录等信息。
  2、Execute方法用于执行对远程服务器的请求,它能发送对特定协议有效的请求,对于FTP协议来说,有效的操作有:
  CD file1
  改变目录。改变到 file1 中指定的目录。
  CDUP
  改变到父目录。等效于“CD...”
  CLOSE
  关闭当前的 FTP 连接。
  DELETE file1
  删除 file1 中指定的文件。
  DIR,LS file1
  搜索 file1 中指定的目录(允许用通配符,但要使用远程主机的语法)。如果没有指定 file1,将返回当前的整个工作目录。使用 Ge unk 方法返回目录数据。
  GET,RECV file1 file2
  检索 file1 中指定的远程文件,并创建 file2 中指定的新本地文件。
  MKDIR file1
  创建目录。创建 file1 中指定的目录。创建是否成功取决于用户在远程主机上的权限。
   PUT ,SEND file1 file2
  复制 file1 指定的本地文件到 file2 指定的远程主机上。
  PWD
  打印工作目录。返回当前目录名。使用 GetChunk 方法返回数据。
  QUIT
  终止当前用户。
  RENAME file1 file2
  将 file1 中命名的远程文件重命名为 file2 中指定的新名称。成功与否取决于用户在远程主机上的权限。
   RMDIR file1
  删除目录。删除 file1 中指定的远程目录。成功与否取决于用户在远程主机上的权限。
   SIZE file1
  返回 file1 指定的目录的大小。
  举个例子:
  Inet1.Execute “",“dir"
  debug.print Inet1.GetChunk 这一句将打印出上一句dir的结果。
  Inet1.Execute “",“Get file1 C:\File1" 这个命令会把对方c:\File1的文件取到本机当前目录下(这里假设对方是windows base 的机器,并且有c:\File1的文件)。
  下面说说该控件唯一的事件StateChanged。
  当这个FTP连接中状态发生了改变,如登录成功、命令接收成功、断线等等都会引发该事件。该事件的处理函数有一个参数state,表明当前连接状态,它的值定义如下:
  值 标识符 意义
  0 icNone 无状态可报告。
  1 icHostResolvingHost 该控件正在查询所指定的主机的 IP 地址。
  2 icHostResolved 该控件已成功地找到所指定的主机的 IP 地址。
   3 icConnecting 该控件正在与主机连接。
  4 icConnected 该控件已与主机连接成功。
  5 icRequesting 该控件正在向主机发送请求。
  6 icRequestSent 该控件发送请求已成功。
  7 icReceivingResponse 该控件正在接收主机的响应。
   8 icResponseReceived 该控件已成功地接收到主机的响应。
   9 icDisconnecting 该控件正在解除与主机的连接。
  10 icDisconnected 该控件已成功地与主机解除了连接。
   11 icError 与主机通讯时出现了错误。
  12 icResponseCompleted 该请求已经完成,并且所有数据均已接收到。
  用Select case 语句处理各个状态就行了。
  怎么样,是不是很简单呀,一个简单的FTP你只须建立连接,从用户读取命令,用Execute方法将命令传送到对方主机就可以了,剩下的活都有Inet控件帮你搞定,但是要作得好用,还要处理各种网络错误,用递归处理子目录上载或下载,为用户建立FTP服务器的地址簿等,这里不做更深一步讨论。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网