亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VB多線程技術的FTP的實現(xiàn)

        2008-04-12 00:00:00苗專生
        現(xiàn)代電子技術 2008年8期

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

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

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

        2 VB的FTP實現(xiàn)機制

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

        2.1 it1的主要屬性和方法

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

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

        2.2 文件傳輸?shù)膶崿F(xiàn)

        文件傳輸?shù)膶崿F(xiàn)程序如下所示:

        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]′執(zhí)行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的多線程實現(xiàn)機制

        3.1 創(chuàng)建線程并初始化

        VB通過調用Windows的API函數(shù)CreateThread實現(xiàn)多線程[4],該函數(shù)的聲明如下:

        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

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

        Dim lt as long

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

        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 ″創(chuàng)建線程失??!″ else msgbox ″線程″ lt ″正在運行……″,2

        lt=lt+1;

        End Sub

        圖1 指定URL的可下載文件

        3.2 激活線程并管理

        用以下2個API函數(shù)均可激活線程。

        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的一個屬性來管理線程的狀態(tài)。

        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]′創(chuàng)建類的新線程對象

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

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

        3.3 編寫處理新線程函數(shù)的代碼

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

        圖2 正在運行的新線程

        4 結 語

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

        參 考 文 獻

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

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

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

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

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

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

        国产精彩刺激对白视频| 色综合久久久久久久久久| 在线亚洲人成电影网站色www| 免费无码又爽又刺激高潮的视频网站 | 国产自产在线视频一区| 国产一区二区三区四色av| 久久精品国产色蜜蜜麻豆| 亚洲综合伊人制服丝袜美腿 | 久久AV中文一区二区三区| 国产av区亚洲av毛片| 久久伊人这里都是精品| 欧美天天综合色影久久精品| 亚洲天堂资源网| 国产精品久久久看三级| 久久精品国产亚洲夜色av网站| 伊人久久大香线蕉av一区| 日韩久久久久中文字幕人妻| 精品黑人一区二区三区久久hd| 国产麻豆剧果冻传媒一区| av无码久久久久久不卡网站| 精品久久久久久国产潘金莲| 中文字幕av熟女中文av| 巨茎中出肉欲人妻在线视频| 国产在线不卡AV观看| 中文字幕亚洲视频三区| 日韩人妻中文无码一区二区| 亚州少妇无套内射激情视频| 中文国产成人精品久久一区| 色综合悠悠88久久久亚洲| 国产农村乱辈无码| 亚洲国产99精品国自产拍| 蜜桃av在线播放视频| 人妻精品久久久一区二区 | 伊人色综合久久天天五月婷| 欧美日韩另类视频| 国产精品三级国产精品高| 国产免费观看黄av片| 老司机在线精品视频网站| 日本视频中文字幕一区在线| av网站一区二区三区| 色婷婷五月综合激情中文字幕|