⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 81.htm

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -