请如何使用WININET(api)或Internet Transfer(控件) 如何用他们上传文件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Internet Transfer编写FTP程序 常上网的人都对FTP熟悉得不能再熟悉了,它是文件传输协议的英文缩写,所谓文件传输协议就是人们规定的在网络间传输文件的一组规定,里面规定了数据包的格式、数据包头部结构、命令结构等等。其实要想实现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,将返回当前的整个工作目录。使用GetChunk方法返回目录数据。 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服务器的地址簿等,这里不做更深一步讨论。 这个资料我有我是想用http 协议做?如何实现呢? 关于StretchBlt 关于验证网页是否载入完毕??? 如何获得当前过程或函数的名字 今天VB突然不好使了,好奇怪,高手帮忙看看?工程可以打开,再打开窗体就死掉,是vb没有响应,其它应用程序没问题 请问怎么用vb制作一个插件,可以在网页客户端中调用. 请教一下关于textbox的width的问题(想实现像网页上的单行滚动效果,但字多了,后面字看不见了) 急急!!!!!这句有错误吗??????? 怎么退出while循环?? VB里头关闭窗口的方法是什么呀? 如何自动换行? 在多个字段里查询的难题 谁有兴趣看看这个啊~~
用Internet Transfer编写FTP程序
常上网的人都对FTP熟悉得不能再熟悉了,它是文件传输协议的英文缩写,所谓文件传输协议就是人们规定的在网络间传输文件的一组规定,里面规定了数据包的格式、数据包头部结构、命令结构等等。其实要想实现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,将返回当前的整个工作目录。使用GetChunk方法返回目录数据。 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服务器的地址簿等,这里不做更深一步讨论。
我是想用http 协议做?如何实现呢?