说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

设计Browser及FTP程序 -VB资料

HTML文档下载 WORD文档下载 PDF文档下载
设计Browser及FTP程序 -VB资料
作者:张冠军

用VB 5.0 设计Browser及FTP程序

前言
  自从Internet盛行以来,人们对于文件下载、即时信息获取、电子邮件传送变得方便许多。 Internet可以说是21世纪人类科技的一大创新。由于这个重大改变,人们的生活方式也受到非常大的影响;电子购物、网上信息库、网上股市实时交易如雨后春笋般的出现。以往,Visual Basic 4.0并没有提供一个完整的solution供Visual Basic的爱好者设计Internet程序。 还好,Visual Basic 5.0提供了一些控件,供我们设计Internet的相关程序。在本文中,笔者将会用Internet Transfer control配合Web Browser control,来告诉读者如何用Visual Basic 5.0轻松地设计Browser及FTP程序。

Control简介
 Internet Transfer control
  Internet Transfer control 是微软为方便使用者设计Internet应用程序所提供的一种control。它提供两种Internet protocol:HTTP及FTP。我们在使用时,必须先设置好它的存取方式。存取方式分为直接连接到Internet网络,或通过proxy来连接Internet网络两种,完全依我们的网络性质来定。当我们设置好了相关参数之后,Internet Transfer control提供两个method:OpenURL及Execute 来让我们执行网络相关操作,我们可以用这两个命令来执行一些Internet command。在下面的设计中,笔者会说明它的用法。

 Web Browser control
  Web Browser control最早是由IE 3.0所提供,在安装IE 3.0时就会自动载入;Visual Basic 5.0 将它变成内部控件。它提供Navigate method,使我们能够连接到我们想要去的WWW Server。

  各位读者一定很奇怪:既然Internet Transfer control能够通过HTTP及TP protocol连接到 Internet,我们还要Web Browser control干甚么?只因为Internet Transfer control并没有提供图形模式的存取方式,所得到的文件仅能以文本模式传回。如果传回的文件包含图形的话,还必须将所得到的HTML文件用程序来做一个转换。所以笔者选择了Web Browser control来帮我们做一个转换。
  以下就让笔者来告诉读者如何设计Web Browser及FTP client。

Web Browser程序设计

Step 1:设置好网络参数
  首先要知道我们的网络系统是直接连到Internet,还是通过proxy连接到Internet。我们可以通过以下的步骤来确定我们的系统是以哪种方式连接Internet:在"我的电脑"选项double click进入"控制面板"。在"控制面板"选项中double click进入"Internet" 选项。在Internet Dialog Box中选择connection。由屏幕显示的Dialog Box就可以知道系统是通过proxy还是通过dialing的方式连接到Internet。由于笔者的系统是通过proxy连接到Internet,我们必须要找出proxy Server的address及port,以利于程序设置。
  接着click"setting"选项来查看它的address及port。屏幕接着会显示一个Dialog Box,里面记着"address of proxy to use ": 172.18.16.65,"port" : 8080。将它记录下来,等会儿就会用到这些参数。

Step 2:开始设计程序
  在File选项中选择New Project建立一个新的工程,在屏幕上会看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。
  接着在Project下,选择Property属性选项,在general选项下将Project Name改为Webbrowser。在屏幕的Form上加入一个Web browser control,取名为web1;接着加入一个Internet Transfer control,取名为Inet1。加入三个TextBox control,分别取名为CGISearch、webname和htmlshow,并在CGISearch TextBox前加入一个Label,将其Caption改为Search。加入三个Button control,分别取名为Search、Go和ShowDoc。将Caption分别改为Search、Go to和show document。

为方便读者了解关系,以下以表格解释一遍:
(TextBox)
Name
-------------------------------------------------
CGISearch(输入CGI命令)
webname(输入要前往的web address)
htmlshow(显示html文字结果)

(Button)
Name Caption
-------------------------------------------------
Search(执行CGI命令) search
Go(执行前往web address的动作) Go to
ShowDoc(显示html文字结果) show document

  接着将Inet1的各项属性设置如下:
Accesstype=2-icnamedproxy
protocol=4-icHTTP
proxy=172.18.16.65:8080

  在Go_Click()中加入以下程序代码, 这个动作是连接到所想要去的web Server,并将屏幕显示在web1的方块区域内:
Private Sub Go_Click()
web1.Navigate webname.Text
End Sub
  以上程序是运用web1的Navigate,这个method将屏幕连接到web name TextBox中所指定的网络站点。

  在htmlshow _Click()加入以下的程序代码:
Private Sub htmlshow _Click()
a$ = web1.LocationURL
ShowDoc.Text = Inet1.OpenURL(a$)
End Sub
  以上程序,是先将web1所连接到的URL address,通过LocationURL这个property读出,并将它暂存于字符串a。接着使用OpenURL()命令来将所接收到的HTML程序代码,显示在ShowDoc这个TextBox中。

  在CGIserch _Click()中加入以下程序代码:
Private Sub CGIserch _Click()
Web1.Navigate "http://search.yahoo.com/bin/Search ? p=" + CGI.Text
End Sub
  这个动作是用CGI命令来查询文件。在这里我们将查询命令指定传送到Yahoo 这个网络搜寻站。这样我们就完成了一个小型的Web Browser。

Step 3:测试程序
  执行刚设计完的Web Browser,并在web name这个TextBox中填入所要去的网址。这里我们将它设置为http://www.Microsoft.com。接着按下Go Button,将会看到在web1 control的方块区域内显示了Microsoft的HomePage。按下ShowDoc Button,将可以在htmlshow这个TextBox中看到Microsoft HomePage的HTML程序代码。
  接下来让我们试试CGI搜寻功能。在CGIserch TextBox中加入communication,结果我们发觉查询的结果显示在web1方形区域中。同样的,我们也可以按下ShowDoc Button,将可以在htmlshow这个TextBox中,看到查询结果所传回的HTML程序代码。
  恭喜您成功了!
============================================

FTP程序设计
  前面提到Internet Transfer control可以提供FTP protocol,这里我们便要告诉您如何运用 Internet Transfer control来设计一个可以连接FTP Server的client程序,并将FTP Server上的bbb.txt文件download到local端。

Step 1:程序设计
  在File选项中选择NewProject建立一个新的工程,在屏幕上看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。接着在Project下,选择Property属性选项,在general选项下将Project Name改为FTP client。
  屏幕的Form上加入一个Internet Transfer control,取名为Inet1。将Inet1 property的参数设置如下:
Accesstype=2-icnamedproxy
Username="david"
password="2333334"
protocol=2-icFTP
proxy=172.18.16.65:8080

  我们在此将Username及password设置好,当我们Login进入FTP Server时,Server将会直接跳过输入Username和password的屏幕。加入一个TextBox control,取名为FTPgetfile。加入两个Button control,取名为FTPget和FTPLink,分别将其Caption改为FTPget和 FTPLink。

  在FTPLink _Click()中加入以下程序代码:
Private Sub FTPLink _Click()
Inet1.excute "FTP 128.9.200.4"
End Sub
 Execute是Internet Transfer control提供的一个用来执行FTP公用程序的method,我们可以在它的后面加入FTP的命令,这样我们就可以使用任何熟悉的FTP公用程序来完成工作。
  笔者的FTP Server地址是128.9.200.4,所以我们在FTP命令后面填入这个地址。

  接着在FTPget _Click()中加入以下程序代码:
Private Sub FTPLink _Click()
Inet1.excute "GET aaa.txt c:\bbb.txt"
End Sub
  这个动作是将FTP Server上的aaa.txt文件传送到client端。

Step 2:测试
  将FTPclient执行起来,按下FTPLink Button,连结到 FTP Server。按下FTPget Button,取回文件。有没有发觉到在C:\目录下面多了一个bbb.txt的文件?恭喜您成功了!
昂贵、复杂、不可靠!智能家居产品的尴尬现状 Facebook的CIO都做些什么? 穷游网CTO黄向阳:成果与价值是最好的驱动力 2015移动游戏行业方向标:创业者必须关注的几个领域 基于Python的行为驱动开发实战 面向WP和Android!微软车库发布多款免费应用 GRPC:谷歌发布的首款基于HTTP/2和protobuf的RPC框架 革命,就是现在!——CES 2015行纪 HTML5游戏引擎排行榜 Construct 2最受欢迎 2015手游营销新趋势:电视广告,及其投放逻辑 详解下一代开源混合应用框架Reapp 应用内一键交易!Google公布Android Pay项目 Timehop为什么要放弃Rails,转向Go? 无线充电技术走入客厅 宜家推出“Home Smart”系列 发布仅一年,虚幻引擎4宣布完全免费! HTML5初学者福利!11个在线学习网站推荐 Qualcomm发布Snapdragon 820与超声波指纹识别技术 App Store应用僵尸化:没品质没资本的必然走向 Unity 5正式发布:支持21种平台、个人版免费! 创新高性能移动UI框架——Canvas UI 框架 取精华、去糟粕!适合iOS开发者的15大网站推荐 Swift如何优化性能? 【程序员电子刊精选】明道CEO任向晖:企业也需要养成好习惯 你信吗?重构软件并不会改善代码质量 融合VR与AR:uSens推出虚拟现实手机头盔 4月17-18日,OpenStack、Spark、Container齐聚OpenCloud 2015 第四代CSS选择器,那些让你激动的新特性 联通WO+开放平台“App计费 ” 保障手机应用付费安全 Valve推Lighthouse技术,欲解决VR设备眩晕感 全球移动开发者报告:Swift崛起,物联网大火! 不圈地自萌!10个UX设计经验分享网站推荐 再问个菜鸟问题,showmodaldialog的title怎样控制 javascript中如何取整? ALT和MFC的区别是什么?? 试用DELPHI6,BUG太多了! 我是新手,请问在delphi5中如何建库(orcle和sybase)? 问一个比较弱智的问题 js文件里如何使用另一个js文件里的函数30? 哪位大虾知道可以在哪里下载mpeg-1的codec,谁先告诉有效地址谁先得分!(不给分是小狗!) 可能很菜的问题,送分的问题!! 一个关于CDaoTableDefInfo的问题 ado的问题??求救!!!高分!!! 有关代码重用的问题,对Form的继承。 一个关于CString.Format的问题 学习编程时学图算法怎么学好? 一个很简单的CREATE TABLE语句为什么出错呢?向大家请教! jbuilder5运行需要最低配置 ,傻傻的问 Delphi6的盗版已经到了@_@ 喂,为什么我提问只能给最多37分,原先可比这要多的多 一个关于派生类的问题 关于页面关闭的问题 用new JTalbe(10, 20)创建了一个table,如何设置该table列(column)的宽度 请教一个关于用VC6开发outlook\exchange的问题。急!急! 时间服务器 请问一下,用DBM,如果用户注册的数量多了以后,程序的速度很一般的文本速度比较哪个快 纯数学问题:如何求模逆元? VB中实现进程间通信的方法?VB中的CallWindowProc的用法?VB中如何发送自定义的消息? 请问哪里能免费下载BCB5?下载多长时间没有关系,只要能够正确使用就可以了。 怎样得知CListCtrl中当前选项? 我想从WINME中自带的一个驱动程序提取出来在WIN97中安装,请问应如何做? 菜问题(2) 请教:为何数据库数据无法在网页上显示? CEditView 一定要override onChange function(ON_CONTROL_REFLECT(EN_CHANGE, OnChange))????;否则input 时不我待会错??? 请教:不通过页面,用VB如何得知来访者的IP? 如何将vcd转化为real的格式???????????急!!!!!!!!!!!!!! 对DMO播放内存MPEG2数据没有头绪,谁能给点提示? 支持bestbestbest!!!!!!!!!!!! 如何在win98下使用EJB? applet 可以打开到一个server的socket么 谁知道国内哪有下载jdk1.4,Thanks! 如何配置For Oracle8i 的ODBC? 请教如何动态改变窗口大小 弟兄们救命啊!!!rational rose中mdl的导出 Jbuilder5.rar的密码? 这条语句为何通不过?请指教! 各位大虾:一个WWW服务器,不通过页面,要得到访问者的IP怎么办? 劳改犯严正声明:支持3B、蝈蝈的正确领导,声讨"捣蛋杂碎"及"跳梁小丑".坚决维护水园的安定团结. 哪位高手能给我解释一下,关于Hook技术,谢谢 pcb板什么什么东东? 请问:malloc()函数的作用是什么? 关于TTS(vcmd.exe自动化服务器) to 斑竹 :::::::,为什么我提问给分怎么比以前少了许多 绿色行动中,学校把560棵树苗按人数分给六年级3个班栽,一班47人,二班45人,三班48人.3个班各栽多少棵? 一个池塘周长为240m沿池塘周围每隔4米栽一棵柳树,每两棵柳树之间等距离栽了3棵杨树,一共栽了多少棵柳树,多少棵杨树?求算式子? 在一个周长400米的圆形池塘周围植树,每隔4米栽一棵 ,一共可栽多少棵? 一个鱼塘的周长是1500米,沿鱼塘周围每隔6米栽一棵杨树,需要种多少棵杨树? 一个湖泊周长为1800米,沿着湖泊周围每隔12米栽一棵柳树,每个两棵柳树中间载一棵桃树和一棵杨树.问:每两棵树之间的距离是多少?共多少棵树? 在周长180米的池塘种树,每隔12米种一棵,要种几棵? 一个圆形鱼塘的周长是1500米,沿鱼塘周围每隔6米栽一棵杨树,需要在多少棵杨树? 一个湖泊周长1200米,沿湖泊周围每隔3米栽一棵杨树,每两棵杨树中间栽一棵柳树.湖泊周围各栽多少柳树杨树 一个圆形的花坛,周长是120米,如果沿着花坛周围每隔5米种一棵杨树,每两棵杨树之间种一棵树,一共可种()棵树 一条路长525米,在路的一旁栽树,每隔5米一棵,两端都栽,一共需要栽多少棵树 一个圆形养鱼池的周长是150米,现在要在他的周围种上柳树,每隔6米栽一棵树,一用需要多少棵树? 一个圆形鱼塘的周长是270米,每隔9米种一棵杨树,每相邻的两棵杨树之间均匀地栽两棵柳树.栽了多少棵杨树?多 同学们给90米的小路一侧栽树,每隔3米栽一棵.如果两端都不栽树,一共需要多少棵树苗? 一个鱼塘的周长是1500米,沿鱼塘周长每隔6米载一棵杨树,需要载多少棵杨树? 在一个周长是1200米的正方形池塘四周栽树,每隔10米栽一棵杨树,后来又在每两棵杨树之间又栽了2棵柳树. 学校有一条长600米的小路,准备再小路的两旁栽树,每隔4米栽一棵,如果两端都栽树,共需要多少棵树苗? 在一个长方形鱼塘四周每隔4米栽一棵树,一共栽了120棵《四个角各在一棵》,这个鱼塘周长多少米? 等差数列:要在一周长400米的池塘周围等距离地在栽一些柳树,株距10米,再在每两棵柳树间栽3课杨树,在这个池塘周围共栽树多少棵 在一条长300米的公路两边栽树,每隔4米栽一棵,共栽多少棵 一个湖泊周长1800米,现在每隔6米栽一棵柳树,每两棵柳树之间栽一棵桃树.湖泊周围柳树和桃树各栽多少 一个圆形广场的周长是100米,如果围着广场每隔10米种一棵树,一共要种几棵树? 在一条长20米的小路两旁栽树,每隔5米在一棵树,一共栽多少棵? 1个湖泊周长1800米,现在每隔6米栽1棵柳树,每2棵柳树之间栽1棵桃树.湖泊周围一共栽了多少棵柳树和多少棵桃树? 周长为300米环形,每隔3米种一棵树,栽倒30颗树后接到通知改成每隔5米栽一个树后接到通知改成每隔5米载一棵问可以载多少颗树 绿化队栽树第一天栽了120棵第二天栽了136棵这时已栽的棵树与剩下的棵树的比是4:9还剩多少没有栽(用比例解 在周长为8040米的大堤,堤上每隔8米栽柳树一棵,然后在相邻两棵柳树之间每隔2米栽桃树一棵,准备桃树几棵? 公园里湖的周长是2100米,围湖每隔14米种一棵树,要种几棵树? 小芳小明小林共栽120棵树,其中小芳栽棵树是总棵树的一半,小林栽的棵数是其他三人栽的总棵数的3分之1小明栽的棵数是其他三人的4分之1小红栽几颗 池塘周长450米,沿池塘周围每隔3米栽一棵柳树,每两柳树中间栽一棵桃树,池塘周围各栽多少棵柳树和桃树 一个圆形池塘,它的周长是27米,每隔3种一棵树,共需要几棵? 小明小芳走一段路,小明走的路程比小芳多5分之1,小芳用的时间比小明多8分之1,小明与小芳的速度之比是? 一湖泊周长1800米,沿湖泊周围每隔3米栽一棵柳树,每2棵柳树中间栽2棵桃树,湖泊周围栽柳树几棵?桃树几棵给下算式 周长为300米环形,每隔3米种一棵树,后接到通知改成每隔5米栽一个树,问可以载多少数题目叙述的不完整 是栽倒30颗树后接到通知改成每隔5米栽一个树,问可以载多少数 小红小明小芳在400米一圈的环形跑道上跑步.小红每分钟跑80米,小明每分钟跑120米,小芳每分钟跑140米,他他们三人同时在同一起点出发,小红和小明相反跑,几分钟后祥云?小明和小芳同一方向跑, 在某淡水湖四周筑成周长8040米的大提,提上每隔8米栽柳数一棵,然后在相邻两棵柳树之间每隔2米栽桃树一棵.应该准备柳树和桃树各多少棵/ 关于两棵大树围着一棵小树的作文.450字 小明、小林、小芳共采集树种17千克.小明说:我采集了其中的2分之1.小林说:我采集了其中的3分之1.小芳说,我采集了其中的9分之1.已知这三个小朋友个采集的树种都是整千克数,问各采集树 在某淡水湖四周筑成周长为8040米的大堤,堤上每隔8米栽柳树一棵,然后在相邻两棵柳树之间每隔2米栽桃树一棵,应准备柳树和桃树各多少棵? 两棵大树中间有一棵小树 一边有太阳 一边下雨 600字作文 小明与小芳各走一段路,小明走的路程比小芳多六分之一,小芳用的时间比小明少八分之一,小明小芳速度比 一个正方形水库的周长是1600米,在水库的周围每隔8米栽一棵柳树,每两棵柳树中间再载两棵白杨树共种多少树一个正方形水库的周长是1600米,在水库的周围每隔8米栽一棵柳树,每两棵柳树中间 看图作文,两棵强壮的大树中间有棵矮小的小树 沿着400米的环形跑道跑步,同时从同一地点出发,同向而行,小明每分钟跑300米,小方每分钟跑260米.经过多少分钟小明可以追上小方?那是相遇,这是追及 水库大坝是一个近似圆形,周长是2430米,每隔9米种柳树1棵,可种柳树多少棵?相邻两棵柳树之间每隔3米又种水库大坝是一个近似圆形,周长是2430米,每隔9米种柳树1棵,可种柳树多少棵?相邻 两棵大树之间相距250米,园林部门计划在两棵大树的中间补栽小树,便每两棵小树之间的距离是10米,一共要补栽多少棵小树? 小明,小方两人在400米的环形跑道上练习跑步,小明每分钟跑300米,小杰每分钟跑230米.小明,小杰两人同时同出发,出发时,他们在同一点 问 小明几分钟追上小杰 如图在某一平地上,有一棵树高八米的大树,一棵高三米的小树,两树之间相距12米,今有一只小鸟在其中一棵树梢上,要飞到另一棵树的树梢上,问它飞行的最短距离是多少 两棵大树中间有一棵小树 一边有太阳 一边下雨 题目该怎么起 一条环形跑道长400米,小红练习骑自行车,平均每分钟骑550米,小明跑步,每分钟跑250米,两人同时同地出发.问:若两人同向而行经过多长时间首次相遇 在某一平地.有一棵高8米的树.在距离12米的地方有一棵小树.问两树尖相距多少米(解法) 两棵大树之间相距250米,园林部门计划在两棵大树中间补栽小树,使每两棵小树之间的距离是10米.一共要补栽多少棵树 小红小明小芳在400米一圈的环形跑道上跑步小红每分钟跑80米小明没分钟跑120米小芳每分钟跑140米他们三人同时一起点出发小红和小明相反跑几分钟后再次相遇?小明和小芳同一方向跑,几分钟 在某一平地上,有一棵高6米的大树,一棵高3米的小树,两树之间相距4米.今一只小鸟在其中一棵树的树梢上要飞到另一棵树的树梢上,问它飞行的最短距离是多少? 两棵大树之间相距250米,园林部门计划在两棵大树中间补栽小树,使每两棵小树之间的距离是米,一共要补栽多少 小明和小亮沿400米长的环形跑道跑步,他们从某处同时出发,如果同向而行,那么经过200s小明追上小亮,如果背向而行,那么经过40s两人相遇,求两人的跑步速度.最好用二元一次方程解 平地上有一颗15米的大树和一颗高7米的小树,两树之间相距15米,一只小鸟要从其中一树的树梢飞到另一棵树的树梢上,问他飞行的最短距离是多少? 两棵大树之间相距160米,园林部门计划在两棵大树中间均匀地补栽39棵小树,每两棵小树相距多少米? 学校把栽70棵树的任务,按照六年接三个班的人数分配给各班,一班有46,二班有44人,三班有50人.求三个班给应栽多少棵树是求3个班各栽多少棵树 平地上有一棵高8m的大树和一棵3m的小树,两树之间相距12m.一只小鸟要从一棵树的树梢上飞到另一棵的树梢上,问它飞行的最短距离是多少(画出草图然后解答)? 两棵大树之间相距180米,园林部门计划在两棵大树中间栽44棵小树每两棵小树的间隔距
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn