社区
VB基础类
帖子详情
请如何使用WININET(api)或Internet Transfer(控件)
xjbx
领域专家: 编程技术技术领域
2003-07-10 11:35:25
如何用他们上传文件?
...全文
120
4
打赏
收藏
请如何使用WININET(api)或Internet Transfer(控件)
如何用他们上传文件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xjbx
2003-07-15
打赏
举报
回复
没人可以帮助我么?
xjbx
2003-07-10
打赏
举报
回复
这个资料我有
我是想用http 协议做?如何实现呢?
lxqlogo0
2003-07-10
打赏
举报
回复
用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服务器的地址簿等,这里不做更深一步讨论。
xjbx
2003-07-10
打赏
举报
回复
没人知道嚒?
Win
Inet
编程详解
一般而言,开发
Internet
服务客户端程序的目的是通过
Internet
协议(HTTP,FTP)获取网络数据源的信息,微软提供了专门的
Win
32
Internet
扩展接口,也就是
Win
Inet
。 1
使用
Win
API
函数开发客户端程序 一般流程是,首先通过
Internet
Op
Win
Inet
相关资料
一般流程是,首先通过
Internet
Open()函数创建位于根部的H
INTERNET
句柄,然后才能进一步建立HTTP、FTP会话,
使用
Internet
Connect()函数创建一个指定的会话,初始化HTTP、FTP会话(根据指定的参数决定),并创建一个根句柄的分支,HttpOpenRequest()、FtpOpenFile()、FtpFindFirstFile()等函数将
使用
Internet
Connect()所创建的句柄,建立到指定站点的连接。调用CFtpFileFind::FindFile。
用
Win
INet
Api
开发FTP客户端 (三) ------ 完整代码
Option ExplicitPublic Const MAX_PATH = 260 是由MFC定义的不要更改Public Const
INTERNET
_OPEN_TYPE_PRECONFIG = 0Public Const
INTERNET
_OPEN_TYPE_DIRECT = 1Public Const
INTERNET
_OPEN_TY
使用
Win
Inet
访问没有证书的Https (GET/POST)
#include #include #include #pragma comment(lib,"
win
inet
.lib") #define
TRANSFER
_SIZE 1024 int main() { int nRet = 1; LPCTSTR lpszAgent = "
Win
Inet
Get/0.1"; H
INTERNET
h
Internet
=
Internet
Open(lpszAgent,
INTERNET
_OPEN_TYPE_PRECONFIG, NULL, NULL
用
Win
INet
Api
开发FTP客户端
Option ExplicitPublic Const MAX_PATH = 260 是由MFC定义的不要更改Public Const
INTERNET
_OPEN_TYPE_PRECONFIG = 0Public Const
INTERNET
_OPEN_TYPE_DIRECT = 1Public Const
INTERNET
_
VB基础类
7,788
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章