日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

VB5.0環境下Internet應用程序的開發

VB5.0環境下Internet應用程序的開發

更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

   Internet有強大的通信功能,如文件傳送、遠程登錄、E-mail、Internet Phone和Internet Fax等,它使傳統的電信產業發生了巨大變化。同時,它是一個大型信息資源庫,所含信息不僅包羅萬象,而且日新月異。尤其是WWW(World Wide Web)的出現使全球信息聯成一體,并使千家萬戶可以隨時共享這一人類偉大的資源。WWW的大規模興起源于商業應用的普及和用戶界面友好,越來越多的公司企業利用WWW網頁作為商品促銷或對客戶服務的手段。不難想像,對于任何一位軟件開發愛好者來說,學習開發Internet應用程序已經是一件刻不容緩的事情了。眾所周知,使用Microsoft Visual Basic 5.0增強的Internet功能使我們能夠在很短的時間內開發出實用的Internet網絡應用程序,本文擬向讀者介紹的就是有關這方面的內容。  

  Visual Basic是Microsoft公司面向Windows程序員的RAD(Rapid Application Development)工具,它的一大特點就是隱藏了很多紛繁而令人厭倦的Windows編程細節,而使開發人員將重點放在應用程序的功能上。當人們談及Internet 應用程序的時候,由于類型太多,很難明確它們具體指的是什么,因此選擇工具之前先了解所需要的應用程序類型是很重要的。Visual Basic為Internet的各種開發工作都提供了專門的技術,下表對Internet的各種用途進行了分類,并列舉了完成各類任務所需的相應的Visual Basic工具。  

    

  表1.  

  Internet任務 Visual Basic工具  

  計算機間的直接通信 WinSock控件(MSWINSCK.OCX)  

  文件傳輸 Internet Transfer控件(MSINET.OCX)  

  Web瀏覽 WebBrowser控件(SHDOCVW.DLL)  

  在Microsoft Internet Explorer中運行的應用程序的開發 ActiveX文檔  

  使用 Internet安裝程序發布應用程序 Setup Wizard  

  用于超文本標記語言頁面的組件開發 ActiveX控件  

  數據庫應用程序 ActiveX文檔  

   具有數據控件或使用ADODB對象的ASP  

   從服務器到客戶機的事務/數據傳輸ASP  

    

  另一方面,隨著WWW技術日新月異的發展,利用WWW技術構造企業內部網即Intranet,已經成為人們的一種共識,甚至Intranet應用程序的數量很可能已經超出了Internet應用程序,而本文描述的每項Internet任務同樣也都適用于Intranet應用程序。  

  以下將通過實例分別講述使用Visual Basic 5.0完成以下任務:①TCP(UDP)/IP編程;②創建Internet Explorer中運行的應用程序;③創建FTP瀏覽器。  

    

  二.TCP(UDP)/IP編程技術  

  TCP/IP協議是一種標準的企業網絡協議,它也是Internet網最重要的網絡互聯協議,Microsoft Visual Basic 5.0的WinSock控件提供用于Internet的傳輸控制協議(TCP)和用戶數據包網絡協議(UDP)的底層訪問,因而可以方便地用于創建通話應用程序,實現兩臺或多臺聯網計算機間的直接數據傳輸。下面介紹利用WinSock控件進行TCP/IP編程的主要步驟。  

  2.1 確定應用程序類型  

  使用TCP協議的應用程序,首先必須確定它是服務器端的還是客戶端的。如果要創建一個服務器端的,就必須知道服務器計算機名或者IP地址(RemoteHost屬性),還要知道進行“偵聽”的端口(RemotePort屬性),然后調用Connect方法。如果創建客戶端應用程序,就應設置一個收聽端口(LocalPort屬性)并調用Listen方法。當客戶計算機需要連接時就會發生ConnectionRequest事件。為了完成連接,可調用ConnectionRequest事件內的Accept方法。建立連接后,任何一方計算機都可以收發數據。為了發送數據,需調用SendData方法。當接收數據時會發生DataArrival事件。調用DataArrival事件內的GetData方法就可獲取數據。  

  2.2 創建一個TCP服務器(Socket服務器)  

  1)創建新項目。  

  在File菜單中單擊New Project,打開New Project對話框,然后雙擊Standard EXE圖標,即建立一個新項目,并進入開發環境。  

  2)將缺省窗體的名稱改為frmServer。  

  將一個Winsock控件拖到窗體上,并將該控件的名字改為tcpServer。請注意其中的Protocol屬性應為sckTCPProtocol。在窗體上添加兩個TextBox控件。將第一個命名為txtSendData,第二個命名為txtOutput(如圖2.1所示)。  

    

  (圖2.1)  

    

  3)為窗體添加如下的代碼。  

  Private Sub Form_Load()  

  '將LocalPort屬性設置為整數后調用Listen方法。  

  tcpServer.LocalPort = 2000  

  tcpServer.Listen  

  End Sub  

  要創建服務器,首先設定一個服務器端口號,并開始偵聽是否有客戶請求連接。程序中,LocalPort屬性為服務器端口號,最好大于1000,以避免沖突。另外,對于眾所周知的端口號,我們稱之為周知口,例如:端口80專用于Web服務。用Listen方法開始偵聽。  

  Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)  

  '檢查控件的State屬性是否為關閉的。  

  '如果不是,在接受新的連接之前先關閉此連接。  

  If tcpServer.State <> sckClosed Then tcpServer.Close  

  '接受具有requestID參數的連接。  

  tcpServer.Accept requestID  

  End Sub  

  當客戶連接到本服務器時,產生ConnectRequest事件,在事件中接收客戶的請求。  

  程序中的requestID參數表示客戶請求連接的ID號,Accept方法接收一個請求連接。  

  Private Sub txtSendData_Change()  

  '名為 txtSendData 的 TextBox 控件中包含要發送的數據。用戶往文本框中  

  '鍵入數據時,使用 SendData 方法發送輸入的字符串。  

  tcpServer.SendData txtSendData.Text  

  End Sub  

  當我們需要向客戶發送數據時,只需要調用SendData方法。  

  程序中使用SendData方法發送數據。  

  Private Sub tcpServer_DataArrival (ByVal bytesTotal As Long)  

  '為進入的數據聲明一個變量。  

  '調用GetData方法,并將數據賦予名為txtOutput的TextBox的Text屬性。  

  Dim strData As String  

  tcpServer.GetData strData  

  txtOutput.Text = strData  

  End Sub  

  當客戶向本服務器發送的數據到達后,產生DataArrival事件,在事件中接收數據。  

  程序中的bytesTotal參數表示收到數據的總數,GetData方法接收數據。  

  Private Sub tcpServer_close(Index as Integer)  

  tcpServer.Close  

  tcpServer.Listen  

  End Sub  

  當客戶關閉連接時,服務器會產生Close事件。在事件中關閉當前連接,重新開始偵聽。其中使用Close方法關閉連接。當然服務器也可以主動調用Close方法關閉連接,例如在窗體關閉時關閉連接。  

  Sub frmServer_UnLoad(Cancel As Integer)  

  tcpServer.Close  

  End Sub  

  通過上面的步驟我們創建了一個簡單的服務器端應用程序。為了使它能夠工作,還必須為它創建一個客戶端的應用程序。  

    

  2.3 創建一個 TCP客戶端(Socket客戶)  

  1)在項目中添加一個新的窗體,將其命名為frmClient。在窗體中添加一個Winsock控件,并將其命名為tcpClient。在frmClient中添加兩個TextBox控件,將第一個命名為txtSend,第二個命名為txtOutput。在窗體上放一個CommandButton控件,并將其命名為cmdConnect。  

  2)將CommandButton控件的標題改為“連接”。  

  3)在窗體中添加如下的代碼。  

  Private Sub Form_Load()  

  'Winsock控件名字為tcpClient。  

  '注意:要指定遠程主機,可以使用IP地址(例如:“121.111.1.1”),  

  '也可以使用計算機的別名,如下所示:  

  tcpClient.RemoteHost = "HostServer1"  

   tcpClient.RemotePort = 2000  

  End Sub  

  要創建客戶連接服務器,首先要設置服務器主機名,如IP地址、域名或計算機名等,然后設定服務端口號,最后連接到服務器上。在程序中:  

  RemoteHost屬性表示服務器主機名;  

  RemotePort屬性表示服務器端口號。  

  Private Sub cmdConnect_Click()  

  '調用Connect方法,初始化連接。  

   tcpClient.Connect  

  End Sub  

  Connect方法連接到服務器;  

    

  Private Sub txtSendData_Change()  

   tcpClient.SendData txtSend.Text  

  End Sub  

    

  Private Sub tcpClient_DataArrival (ByVal bytesTotal As Long)  

   Dim strData As String  

   tcpClient.GetData strData  

   txtOutput.Text = strData  

  End Sub  

    

  Private Sub tcpClient_Close(Index As Integer)  

  tcpClient.Close  

  End Sub  

    

  至此,我們創建了一個簡單的客戶/服務器模式的應用程序。我們可以將兩者都運行起來:運行項目,然后單擊“連接”。在兩個窗體之一的txtSendData文本框中鍵入文本,可以看到同樣的文字將出現在另一個窗體的txtOutput文本框中(如圖2.2所示)。  

  圖2.2  

  2.4 創建多客戶服務器,接受多個連接請求  

  上面設計的基本服務器只能接受一個連接請求。通過創建控件數組,使用一個控件也可以同時接受多個連接請求。利用這種方法,不再需要關閉連接,而只需創建新的控件實例(通過設置其索引屬性),然后,在新的實例上調用Accept方法。  

  下面的代碼假定名字為sckServer的窗體上有一個Winsock控件,它的Index屬性被設置為0;控件是控件數組的一部分。在聲明部分,聲明了一個模塊級的變量intMax。在窗體的Load事件中,intMax被設置為0,數組中第一個控件的LocalPort屬性被設置為2000。然后調用控件的Listen方法,使之成為“偵聽”控件。在連接請求到達時,代碼將檢測Index是否為0(“偵聽”控件的值)。如果為0,偵聽控件將增加intMax的值,并使用該號碼來創建新的控件實例。然后使用新的控件實例接受連接請求。  

  Private intMax As Long  

  Private Sub Form_Load()  

   intMax = 0  

   sckServer(0).LocalPort = 2000  

   sckServer(0).Listen  

  End Sub  

  設定端口號后開始偵聽。  

    

  Private Sub sckServer_ConnectionRequest (Index As Integer, ByVal requestID As Long)  

   If Index = 0 Then  

   intMax = intMax + 1  

   Load sckServer(intMax)  

   sckServer(intMax).LocalPort = 0  

   sckServer(intMax).Accept requestID  

   Load txtData(intMax)  

   End If  

  End Sub  

  在ConnectionRequest事件中,首先加載一個Socket控件,然后再用它來接收連接。  

    

  2.5 測試開發中應該注意的問題  

  1)協議的設置。  

  當WinSock控件與遠程計算機建立連接時,亦可通過用戶數據包協議(UDP)進行數據交換。在使用WinSock控件時,首先需要考慮使用什么協議。TCP應用程序應注意選擇TCP協議。可按如下方式設置應用程序使用的協議:在“屬性”窗口中單擊“協議”,然后選擇sckTCPProtocol或者sckUDPProtocol。也可以使用程序代碼來設置Protocol屬性,如下所示:  

  Winsock1.Protocol = sckTCPProtocol開發TCP應用程序應注意選擇TCP協議。  

  2)注意確定“計算機的名字”。  

  計算機的名字用如下方式查找:  

  ①在計算機的“任務欄”上,單擊“開始”。  

  ②在“設置”項中,單擊“控制面板”。  

  ③ 雙擊“網絡”圖標。  

  ④ 單擊“標識”選項卡。  

  ⑤ 在“計算機名稱”框中可以找到計算機的名稱。  

  上面找到的計算機名稱可以作為RemoteHost屬性的值。應用這一技術,我方便地完成了某企業信息管理系統,成功地實現了企業內部信息流的處理。雖然目前已有WWW瀏覽器、FTP等Internet互聯網的應用工具,可以下載網上的信息,或實現網上工作站間的數據與文件的傳輸,但是用Windows Sockets則可方便地在用戶自己設計的Windwos應用程序中通過Internet互聯網傳輸數據,由于互聯網的傳輸速度可以高達數十兆到數百兆比特每秒,因此,除了可以傳遞一般的文字、圖形、聲音等數據文件外,還可以用來傳遞實時的圖像數據。  

    

  三.創建Internet Explorer中運行的應用程序  

  3.1 概述  

  Visual Basic 5.0版本是直接針對Internet的(也有人稱是針對ActiveX的),Microsoft目前正在加緊開發用于WWW的Visual Basic(估計Visual Basic 6.0必將具有這一功能)。Visual Basic包括一個稱為用戶文檔的新容器類型。用戶文檔構成了Visual Basic Document(也稱ActiveX Document)文檔的基礎,并且生成的文檔能夠使用Microsoft Internet Explorer 3.0以上版本在Internet上瀏覽(見圖3.1)。利用這一功能我們可以方便地創建動態Web頁面。必須指出的是:使用Visual Basic創建的AcitveX Document與其他ActiveX Document略有不同。Visul Basic AcitveX Document與Visual Basic窗體大致相同,能在ActiveX Document容器中使用,但我們不能像運行獨立應用程序那樣運行它們。用戶文檔與窗體非常相似,可以包括控件、顯示消息框、處理數據以及調用其他組件。用戶文檔與窗體的區別主要表現在:⑴應用程序中的其他部分無法得到用戶文檔中的數據,不能從文檔外部引用用戶文檔中的屬性值。⑵給予用戶文檔的應用程序需要Internet Explorer來運行,無法直接從Visual Basic中調試它們。⑶編譯過的應用程序必須從HTM文件啟動,它在顯示VBD文件之前裝入應用程序的代碼組件。如果沒有這個HTM文件,就不能啟動編譯過的EXE文件或從Internet Explorer中查看VBD文件。  

  3.2 ActiveX 文檔對象的重要屬性  

  在講述創建ActiveX 文檔的具體方法之前,我們先研究一下ActiveX 文檔對象的重要屬性。每個用戶文檔包含一個內置的Hyperlink對象,可用它來進入URLs和訪問Internet Explorer的文檔高速緩存。NavigateTo方法大致等價于窗體的Show方法。  

  事件 Show:當瀏覽器顯示文檔時發生;  

   Hide:當瀏覽器離開文檔時發生;  

  屬性 HyperLink:用于導航對象;  

   HyperLink對象有三個重要方法:  

   GoBack:前一頁面;  

   GoFoward:后一頁面;  

   Navigateto:導航;  

  例如HyperLink.Navigateto "http:/www.pccomputing.com"可以導航至《電子與電腦》雜志的主頁。  

  3.3 用Visual Basic創建ActiveX Document的具體步驟  

  我們將開發具有如下功能的應用程序:創建兩個ActiveX文檔頁面,第一個要求訪問者輸入密碼,按動按鈕后,若密碼正確則進入第二頁面;第二頁面可以導航至中國教育與科研計算機網的主服務器。  

  1)在File菜單中單擊New Project來打開一個New Project對話框,然后雙擊ActiveX Document exe圖標,即可建立一個新項目并進入開發環境。  

  2)在“用戶文檔”的第一個UserDocument上添加兩個Label控件、一個TextBox和一個CommandButton(如圖3.1所示)。  

  (圖3.1)。  

  添加如下代碼:  

  Private Sub Command1_Click()  

  '核對Text1的文本,如果正確,則轉至第二個文檔頁面。  

  If Text1.Text = "690909" Then  

  Hyperlink.NavigateTo "d:\ActiveX文檔\UserDocument2.vbd"  

  End If  

  End Sub  

  3)從菜單“項目”中選擇“添加用戶文檔”,在工程項目中添加第二個UserDocument,然后在UserDocument2上添加一個CommandButton(如圖3.2所示)。  

  (圖3.2)  

  添加如下的代碼:  

  Private Sub Command1_Click()  

  '按動按鈕,導航至《電子與電腦》雜志主頁。  

  Hyperlink.NavigateTo "http:///www.pccomputing.com"  

  End Sub  

  4)編譯文檔。  

  5)使用Internet Explorer瀏覽器測試文檔。  

  四.創建FTP瀏覽器  

  4.1 概述  

  FTP是Internet網上最早使用的文件傳輸程序。FTP的具體含義是文件傳輸協議(File Transfer Protocol),它是由支持Internet文件傳輸的各種規程所組成的集合。FTP的作用是使Internet用戶能夠將文件從一臺計算機拷貝到另一臺計算機,為實現Internet資源共享提供有力的保障。它不同于NFS(Network File System)和Netbios協議,一旦你要訪問另一臺計算機中的文件,任何時刻都要運行FTP,而且你只能拷貝文件到自己的機器中時來使用它。FTP是一種客戶機/服務器結構,既需要客戶機軟件,又需要服務器軟件。FTP客戶機程序在用戶計算機上執行,服務器程序在宿主計算機上執行。用戶啟動FTP客戶機程序,通過輸入戶名和口令同遠程主機上的FTP服務器建立連接,一旦成功,在Internet上用戶計算機和宿主計算機之間就建立起一條命令鏈路(控制鏈路)。  

  4.2 用Visual Basic 5.0創建FTP瀏覽器的步驟  

  1) 我們將開發具有如下功能的應用程序:使用兩個文本框和一個Internet Transfer控件。可在“地址”文本框中輸入FTP服務器的URL(Uniform Resource Locator),然后從內容文本框中選擇一個文件或目錄。如果選擇目錄,則應用程序就會顯示該目錄。如果選擇文件,則瀏覽器會將文件存于Windows Temp目錄中。當用戶按回車鍵時,“地址”文本框會通過設置Internet Transfer控件的URL屬性并調用Execute方法來執行請求。當請求一個特定文件時,OpenURL方法實現相同的動作。然而,當你使用OpenURL方法返回目錄的內容時,會返回指明目錄內容的HTML源代碼。  

  2)在File菜單中單擊New Project,以便打開New Project對話框,然后雙擊“普通exe”圖標,即建立一個新項目,并進入開發環境。  

  3)在窗體上添加一個Label控件、一個TextBox和一個ListBox(如圖4.1所示)。  

  圖4.1  

  4)添加如下代碼:  

  Private Sub Text1_Click(KeyAscii As Integer)  

  If KeyAscii=Asc(vbCr) Then  

  KeyAscii=0  

  Text1.SelStart=0  

  Text1.SelLength=Len(Text1)  

  On Error goTo errOpenURL  

  InetBrowse.URL=Text1.Text  

  InetBrowse.Execute, "Dir"  

  Caption=inetBrowse.URL  

  End If  

  Exit Sub  

   ErrOpenURL:  

   Select Case Err.Number  

   Case icBadUrl  

   MsgBox"地址錯誤,請重新出入!"  

   Case icConnectFailed,icConnectionAborted,icCannotConnect  

   MsgBox"無法連入網絡!"  

   Case icInetTimeout  

   MsgBox"連接超時!"  

   Case icExecuting  

   InetBrowse.Cancel  

  If inetBrowse.StillExecuting Then  

   Caption="不能取消請求!"  

   Else  

  Resume  

  End If  

  End Select  

  End Sub  

  當你提交一個請求時,設置錯誤陷阱很重要,尤其是icExecuting錯誤。Internet Transfer控件采用異步方式處理所有請求。然而,在同一時間僅能處理一個請求。如果你取消正在進行的請求,那么在重新開始前一定要檢查StillExecuting屬性。有些請求不能被取消,并且簡單地使用Resume語句會導致死循環。  

  Private Sub List1_DblClick)  

  If List1.SelLength Then  

   If Right(List1.SelText1,1)="/" Then  

   Text1=Text1 & "/" Left(Text1.SelText,Text1.SelLength-1)  

  On Error goTo errBRowse  

  MsDir=Right(Text1.Len(Text1)-Len(inetBrowse.URL)  

  InetBrowse.Execute,"Dir"&msDir&"/*"  

  Else  

  MsDir=Right(Text1.Len(Text1)-Len(inetBrowse.URL))&"/"&""&msTempDir&List1.SelText  

  End If  

  End If  

  Exit Sub  

  ErrBrowse:  

  If Err=icExecuting Then  

   inetBrowse.Cancel  

   If inetBrowse.StillExecuting Then  

   MsgBox"不能取消請求!"  

  Else  

  Resume  

  End If  

  Else  

  Debug.Print Err&""&Err.Description  

  End If  

  End Sub  

   FTP命令用于在本地主機和遠程主機間或兩遠程主機間傳送文件。為了確保所傳送的文件具有唯一的文件名,可使用一些選項來管理文件名,以便于適應接收主機的需要。用戶能通過使用“anonymous”登錄進行公共文件訪問。  

   Internet Transfer控件的Books Online文檔展示用于創建FTP瀏覽器的程序片段,這里就不再詳細敘述了。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 国产在线观看青草视频 | 美女极品粉嫩美鲍35p | 激情一区二区三区 | 曰批免费视频播放在线看片 | 久久夜色精品国产 | 福利视频一二区 | 日本伦理网站 | 久青草国产观看在线视频 | 成人午夜兔费观看网站 | 国产精品亚洲午夜不卡 | 国产亚洲精品成人婷婷久久小说 | 国产 欧美 日韩 在线 | 久热在线播放中文字幕 | ww免费视频 | 亚洲大片在线观看 | 欧美手机手机在线视频一区 | 香蕉视频三级 | 精品视频二区 | 国产高清在线免费视频 | 在线日韩中文字幕 | 亚洲精品一区二区三区在线播放 | 亚洲 日本 欧美 中文幕 | 好男人官网在线播放 | 日本aⅴ永久免费网站www | 日本黄区免费视频观看 | 欧美综合自拍亚洲综合图自拍 | 爱爱小视频在线观看网站 | 伊人不卡久久大香线蕉综合影院 | 久久99国产亚洲高清观看首页 | 九九视频免费精品视频免费 | 久久精品国语 | 激情在线观看视频免费的 | 斗罗大陆免费观看樱花 | 国产精品无 | 亚洲痴女 | 日韩免费一级毛片 | 中文字幕免费在线 | 日韩成人在线网站 | 男人视频网 | 欧美特级爽毛片 | av香港经典三级级 在线 |