999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VB多線程技術的FTP的實現

2008-04-12 00:00:00苗專生
現代電子技術 2008年8期

摘 要:由于網絡用戶的數量與日俱增,通信阻塞現象時有發生。如何提高FTP的傳輸速度是一個重要的研究課題。多線程技術在提高系統效率、有效利用系統資源和保證用戶任務之間的通信質量等方面有其明顯的優點?;赩B的多線程技術支持,探討用VB的多線程技術在Internet上進行FTP的實現方法。實驗結果表明,該方法安全可靠、簡單易行。

關鍵詞:VB;多線程技術;Internet;FTP

中圖分類號:TP393文獻標識碼:B

文章編號:1004-373X(2008)08-059-02

Realization of FTP Based on VB Multithreading Technology

MIAO Zhuansheng

(Luoyang Institute of Science and Technology,Luoyang,471023,China)

Abstract:As the number of network users are increased with each passing day,the phenomenon that communications are choked always occurrence.How accelerate speed of FTP transmission is an important question for discussion.The multithreading technique is excellent in increasing system efficiency,making use of the system resources effectively and guaranteeing the communication quantity of the users′ tasks.Based on VB multithreading technique,the way of using VB multithreading technique to realize FTP on the Internet is discussed in this paper.The experiment results show the method is safe reliable andeasy to realize.

Keywords:VB;multithreading technique;Internet;FTP

1 引 言

Internet的發展非常迅猛,面對Internet這個無窮寶庫,人們會經常下載所需要的各種各樣的信息,這就要用到文件傳輸協議FTP(File Transfer Protocol)。FTP是因特網上較早出現的服務功能之一[1],迄今其仍是Internet上最常用也是最重要的服務功能。面對頻繁的文件下載和相對擁擠的網絡通路,如何快速、高效、方便地利用FTP獲取所需要的信息顯得越來越重要。為使系統具有更好的交互性,可以使用近年來出現的多線程機制提高系統的性能[2]。

線程是比進程更小的能完成一個任務的執行流。多線程是指在應用程序中有多個并發的線程在同時運行,這可以加快程序的響應時間,提高計算機資源的使用效率。多線程技術在圖形用戶界面和網絡程序設計中非常有用[3]。 VC++支持多線程技術,但VC++程序目前尚不能嵌入流行的ASP網頁代碼中;Java的多線程技術頗佳,也可以很方便地將其Applet嵌入網絡的頁面中,但Java畢竟是一門類似于C++的語言,對大多數人來說,熟練掌握并非易事,遠沒有VB使用起來簡單、方便,而且VB的速度同樣也很快。VB 6.0在Internet網絡編程方面提供了強大功能,本文利用VB 6.0的Addressof操作符配合Windows API函數實現多線程技術,并將其用于Internet上的FTP。

2 VB的FTP實現機制

VB的Internet Transfer控件實際上是一個Activex控件[4],他支持HTTP和FTP協議。前者用于瀏覽WWW的HTML頁面,后者用于連接FTP服務器進行文件傳輸。新建一個工程,在窗體上放置Internet Transfer控件it1,另外放置2個文本框ta和tc,分別用來輸入FTP站點地址和列出該站點指定目錄下的可供下載的文件。

2.1 it1的主要屬性和方法

it1.AccessType是與Internet的連接方式。可以設置為1,2,0,分別表示通過電話線、局域網和缺省(按照注冊表中的設置)方式與Internet連接;it1.URL是FTP站點的地址;it1.RequestTimeout為連接的時間限制。

OpenURL方法用于同步連接指定的URL并返回該URL中的內容;Execute方法異步執行對遠程服務器的請求命令,此方法會觸發StateChanged事件;Cancel方法用于強行關閉當前的連接。

2.2 文件傳輸的實現

文件傳輸的實現程序如下所示:

Private Sub ta[CD#*2]KeyPress(KeyAscii As Integer)[JY]′打開URL并顯示可下載的文件

If KeyAscii = Asc(13) Then[JY]′以回車為URL輸入完畢標志

KeyAscii = 0: ta.SelStart = 0: ta.SelLength = Len(ta)

On Error GoTo handleerror

it1.URL = ta.Text′按照輸入的地址設置Internet 

Transfer控件的URL屬性

it1.Execute ,″dir *.*″[JY]′執行Execute方法,列出

URL當前目錄的所有文件

Caption = it1.URL[JY]′在窗口的標題欄上也顯示URL

End If

Exit Sub

handleerror:

…[JY]′錯誤判斷處理

End Sub

Private Sub tc[CD#*2]DblClick( )[JY]′雙擊文件名開始下載

Dim sd As String

If tc.SelLength Then

If Right(tc.SelText,1) = ″/″ Then

[ZK(]ta.Text = ta.Text ″/″ Left(tc.SelText,tc.SelLength - 1)

On Error GoTohandleerror

sd = Right(ta.Text,Len(ta.Text) - Len(I1.URL))

it1.Execute ,″dir″ sd ″/*″

Else

[ZK(]sd = Right(ta.Text,Len(ta.Text) - Len(it1.URL)) ″/″ tc.SelText

sd = Right(sd,Len(sd) - 1)

it1.Execute ,″get″ sd ″ ″ st tc.SelText[JY]′用FTP的get命令下載遠程文件

End If

End If

handleerror:

…

End Sub

程序運行如圖1所示。

3 VB的多線程實現機制

3.1 創建線程并初始化

VB通過調用Windows的API函數CreateThread實現多線程[4],該函數的聲明如下:

Declare Function CreateThread Lib ″kernel32″ Alias ″CreateThread″(lpThreadAttributes As SECURITY[CD#*2]ATTRIBUTES,ByVal dwStackSize As Long,lpStartAddress As Long,lpParameter As Any,ByVal dwCreationFlags As Long,lpThreadId As Long) As Long

他返回線程的句柄。為了對線程初始化和管理,需要創建一個類myclass,用myclass的下述函數初始化線程。

Dim lt as long

Public sub initialize(lpfnbasfunc as long)[JY]′形參是線程函數的地址

Dim ds As Long: Dim dc As Long:Dim lp As Long:Dim mn As Long

mn=0:ds=0

dc=4[JY]′暫不激活

me.Thread=createThread(mn,ds,lpfnbasfunc,mn,dc,lt)

if me.Thread=mn then msgbox ″創建線程失敗!″ else msgbox ″線程″ lt ″正在運行……″,2

lt=lt+1;

End Sub

圖1 指定URL的可下載文件

3.2 激活線程并管理

用以下2個API函數均可激活線程。

Declare Function ResumeThread Lib ″kernel32″ Alias ″ResumeThread″ (ByVal hThread As Long) As Long

Declare Function SuspendThread Lib ″kernel32″ Alias ″SuspendThread″ (ByVal hThread As Long) As Long

用類myclass的一個屬性來管理線程的狀態。

Public threadstatus as Boolean

Public property let enabled(byval nValue as Boolean)

If nValue=true and me.threadstatus=1 then

Resumethread(me.thread)

Me.threadstatus=true

Elseif me.threadstatus=true then

Suspendthread(me.thread)

Me.threadstatus=1

End if

End property

Dim myThread as new myclass[JY]′創建類的新線程對象

myThread.Initialize AddressOf newFunc[JY]′產生處理新線程的函數

myThread.Enabled=true[JY]′激活線程

3.3 編寫處理新線程函數的代碼

在函數newFunc中,用form1.show執行前面的實現FTP的程序代碼。運行時每當創建一個新線程成功,會彈出一個信息窗口,表明當前的線程號,如圖2所示。

圖2 正在運行的新線程

4 結 語

網絡技術的發展日新月異,在“時間就是金錢、效率就是生命”的信息時代,如何通過Internet快速、高效、安全、方便地獲取所需要的信息已成為一個非常重要的技術手段。多線程技術可以使程序反應更快、交互性更強。用VB實現多線程比用VC++和Java均簡單得多,而且運行速度毫不遜色,只是目標代碼稍大一點(約5%)。文中用Addressof操作符配合Windows API函數實現多線程,并成功運用于FTP遠程文件傳輸。實驗表明,該方法安全可靠,簡單易行,速度快、開銷低,每一個線程大約僅占CPU 20 ms的時間片。隨著互連網的普及和網上信息的爆炸式增加,基于VB多線程技術的FTP必然會得到更廣泛地應用。[LL]

參 考 文 獻

[1]田超.Internet的入網與應用[M].北京:科學技術出版社,1998.

[2]劉倩,裘鴻林.Java線程機制在FTP客戶端程序中的應用[J].中國數據通信,2004,11(2):5760.

[3]張白一,崔尚森.面向對象程序設計[CD2]Java[M].西安:西安電子科技大學出版社,2003.

[4]曾偉民,鄧勇剛.Visual Basic 6.0高級實用教程[M].北京:電子工業出版社,1999.

作者簡介 苗專生 男,1957年出生,河南伊川人,高級工程師,碩士。主要從事網絡通信和電子技術的研究工作。

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 国产玖玖视频| 少妇精品久久久一区二区三区| 丝袜美女被出水视频一区| 亚洲天堂在线免费| 国产国拍精品视频免费看| 国产成人无码久久久久毛片| 性视频久久| 色综合中文综合网| 亚洲国产第一区二区香蕉| 欧美中出一区二区| 久青草免费在线视频| 亚洲天堂网视频| 精品福利一区二区免费视频| 国产激情第一页| 亚洲成a人片7777| a级毛片免费网站| 国产国模一区二区三区四区| 中文字幕色站| 欧美日韩中文字幕在线| 国产成人精品三级| 激情六月丁香婷婷| 国产亚洲欧美日韩在线观看一区二区| 99久久精品免费看国产免费软件| 青草国产在线视频| 国产精品视频系列专区 | 欧美日本在线播放| 自偷自拍三级全三级视频| 国产精品人成在线播放| 久久先锋资源| 老司机午夜精品网站在线观看| 91在线播放免费不卡无毒| 国产视频资源在线观看| 国产成人精品2021欧美日韩| 精品精品国产高清A毛片| 国产精品亚洲一区二区三区在线观看| 亚洲精品自在线拍| 国产剧情国内精品原创| 日韩小视频在线播放| 亚洲色欲色欲www网| 国产精品亚洲一区二区三区在线观看 | 亚洲视频色图| 国产第一页第二页| 孕妇高潮太爽了在线观看免费| 亚洲制服中文字幕一区二区| 婷婷色中文网| 影音先锋亚洲无码| 久热精品免费| 欧美午夜网| 国产精品粉嫩| 国产手机在线观看| 美女裸体18禁网站| 在线观看亚洲成人| 97无码免费人妻超级碰碰碰| 国产无码高清视频不卡| 国模极品一区二区三区| 国产成人综合日韩精品无码不卡| 黄片在线永久| 无码日韩人妻精品久久蜜桃| 精品人妻一区二区三区蜜桃AⅤ| 亚洲色图欧美一区| 久草网视频在线| 伊人久热这里只有精品视频99| 伊人成人在线| 欧美国产在线看| 91精品免费久久久| 美女啪啪无遮挡| 精品超清无码视频在线观看| 女人毛片a级大学毛片免费| 欧美国产日韩在线| 露脸一二三区国语对白| 欧美国产成人在线| 中文无码精品A∨在线观看不卡| 国产欧美中文字幕| 亚国产欧美在线人成| 色综合综合网| 重口调教一区二区视频| 成人毛片在线播放| 国产精品视频3p| 久久这里只有精品国产99| 久久国产精品嫖妓| 亚洲国产精品一区二区第一页免| 全部免费毛片免费播放|