用VB制造文件下載程序
下載文件是每個(gè)網(wǎng)友都經(jīng)常做的事,大家一般都是用一些專用軟件如“網(wǎng)絡(luò)螞蟻”來(lái)完成。但是,如果要本人編寫(xiě)一個(gè)程序,實(shí)現(xiàn)下載一個(gè)特定的文件(如下載相關(guān)的網(wǎng)頁(yè)并顯示出來(lái))又該怎么做呢?不要急,看了下面的引見(jiàn)你就會(huì)知道實(shí)現(xiàn)文件的下載其實(shí)是很簡(jiǎn)單的。
在VB中有一個(gè)Winsock控件,通過(guò)它能夠?qū)崿F(xiàn)文件的下載。下面我首先引見(jiàn)一下該控件的主要屬性、方法和事件:
localPor屬性:設(shè)置本地計(jì)算機(jī)使用的端口(一般設(shè)置為0);
Protocol屬性:設(shè)置Winsock控件使用的協(xié)議,tcP或uDP(一般設(shè)置為0);
remotePort屬性:設(shè)置要連接的遠(yuǎn)端計(jì)算機(jī)端口(80為HttP??21為ftP,25為smtP);
remoteHost屬性:設(shè)置用于標(biāo)識(shí)遠(yuǎn)程計(jì)算機(jī)的名稱(remotePort屬性如果為80則設(shè)置為“soHu.com”或“sina.com.cn”,如果為25則設(shè)置為“smtP.21cn.com”);
connect方法:要求連接到遠(yuǎn)程計(jì)算機(jī);
close方法:關(guān)閉連接;
senDData方法:將數(shù)據(jù)發(fā)送給遠(yuǎn)程計(jì)算機(jī);
GetData方法:獲取當(dāng)前的數(shù)據(jù)塊并將其存儲(chǔ)在變體類型的變量中;
connect事件:當(dāng)一個(gè)connect操做完成時(shí)發(fā)生;
close事件:當(dāng)close操做完成時(shí)發(fā)生;
DataarriVal事件:接收數(shù)據(jù)時(shí)發(fā)生;
下面我們就來(lái)實(shí)現(xiàn)文件的下載功能,并以下載搜狐網(wǎng)站的首頁(yè)為例:
oPtionexPlicit
DimmyallasstrinG
PriVatesuBform_loaD
建立連接
Winsock1.Protocol=0
Winsock1.remoteHost="soHu.com如果想下載"新浪"首頁(yè),則換為sina.com.cn
Winsock1.remotePort=80
Winsock1.connect開(kāi)始提取數(shù)據(jù)
enDsuB
PriVatesuBWinsock1_connect
DimstrcommanDasstrinG
DimstrWeBPaGeasstrinG
strWeBPaGe="Http//WWW.osHu.com/"指定網(wǎng)頁(yè),這里是指搜狐的首頁(yè)
strcommanD="Get"+strWeBPaGe+"HttP/1.0"+VBcrlf
strcommanD=strcommanD+"accePt/"+VBcrlf
strcommanD=strcommanD+"accePttext/Html"+VBcrlf
strcommanD=strcommanD+VBcrlf
Winsock1.senDDatastrcommanD發(fā)送命令
endsub
[riVatesuBWinsock1_DataarriVal??ByValBytestotalaslonG
開(kāi)始下載,收到數(shù)據(jù)時(shí),發(fā)生DataarriVal事件
onerrorresumenext
DimWebDataasstrinG
Winsock1.GetDataWeBDataVBstringmyall=myall+WeBData取得相關(guān)的網(wǎng)頁(yè)文件
enDsuB
PriVatesuBWinsock1_close當(dāng)下載完成時(shí)發(fā)生。
本人定義相關(guān)的操做
myall是下載的網(wǎng)頁(yè),你能夠把它顯示在文本框中,也可把它保存為文件,也可通過(guò)一些自定義的函數(shù)進(jìn)行消息的提取,限于篇幅,這里就不引見(jiàn)了。
Winsock1.close關(guān)閉Winsock
enDsuB
到此為止,相信你已了解如何在VB中通過(guò)Winsock控件下載文件了。本程序在VB6.0、Win98環(huán)境下運(yùn)行正常,如果你還有什么問(wèn)題,可到WWW.D1VB.com來(lái),我們一起討論。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。