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

VB中Winsock控件及其數組概述

2010-01-01 00:00:00王建民
考試周刊 2010年5期

摘 要: 本文介紹利用WinSock控件及控件數組建立連接,并討論怎樣實現客戶機/服務器模式下一個服務端同時為多個客戶端提供WinSock連接。

關鍵詞: VB WinSock控件 數組

隨著計算機局域網的不斷發展、普及,網絡版軟件也越來越體現出了網絡時代的優點與其先進性。往往此類軟件都會有一個服務端,由服務端控制著若干客戶端的運行。一般來說,服務端和客戶端之間都要進行大量的信息傳送,而其中很多就是使用WinSock控件。

一、WinSock控件的基礎知識

WinSock控件對用戶來說是不可見的,它提供了訪問TCP和UDP網絡服務的方便途徑。使用WinSock編寫網絡應用程序,不必了解網絡協議的細節或調用低級的WinSock API,通過對WinSock控件的屬性設置和方法調用就可以輕易實現計算機之間的連接,并且還可以實現雙向交換數據。

1.常用屬性

LocalPort:本地通信程序(WinSock)的端口號。

RemoteHost:遠程機器名,機器名也可以是IP地址。

RemoteHostIP:遠程機器IP地址。RemoteHost和RemoteHostIP屬性只設置其中之一。

RemotePort:遠程通信程序(WinSock)端口號。

Protocol:使用協議??蛇x的協議是TCP和UDP,對應的VB的常量分別是sck、TCP、Protocol和sck、UDP、Protocol,Winsock控件默認協議是TCP。

2.常用方法

Accept:接受一個連接請求。格式:對象.accept requestID。

Bind:多協議接口下,把接口卡、IP地址捆綁在一起。格式:對象.Bind端口號,IP。

Close:關閉連接。格式:對象.Close。

Connect:發送連接請求。格式:對象.Connect(IP,遠程端口)。

GetData:取出數據后清除數據緩沖區。格式:對象.Getdata變量。

PeekData:取出數據后,但不清除數據緩沖區。格式:對象.Peekdata變量。

Listen:進入監聽狀態,以便及時對連接請求進行響應。格式:對象.Listen。

SendData:發送數據。格式:對象.SendData data。

3.常用事件

Close:遠程設備關閉連接時觸發事件。

Connect:建立連接,進行通信時觸發。

ConnectionRequest:有連接請求時觸發。

DataArrival:有數據到達時觸發。

二、WinSock控件應用方法

1.WinSock連接過程

網絡應用軟件中,必須有服務端和客戶端。服務端能夠接受客戶端的連接請求,而連接必須由客戶端發起。具體過程如下。

準備工作:

服務端:設置WinSock端口號(LocalPort),使用協議(Protocol),如果機器中有兩塊以上的網卡,則需要進行端口綁定(Bind),使用Listen方法進入監聽狀態,等待響應客戶端的連接請求。

客戶端:設置WinSock遠程計算機名或IP地址(RemoteHost或RemoteHostIP),設置遠程計算機端口號(此處要和服務端端口號一致),使用協議(Protocol)。

連接過程:

第一步,由客戶端使用Connect方法請求建立連接。

第二步,服務端接收到連接請求,觸發ConnectionRequest事件,同時得到一個requestID參數。

第三步,服務端使用Accept方法建立連接,該方法必須用到上一步得到的requestID參數,Listen狀態自動結束。

第四步,連接建立后,客戶端會觸發Connect事件(如果設置響應的話)。

第五步,雙方可以進行雙向數據傳輸,使用SendData方法發送數據,接收方接收到數據后,會觸發DataArrival事件,使用GetData或PeerData方法接收數據。

第六步,任意一方發出結束請求(Close)或直接關閉,對方觸發Close事件(如果設置相應的話)。

以上就是一個WinSock連接實施的全過程,適應于一個服務端對應一個客戶端的情況。但是實際應用中,往往是一個服務端可能要同時和多個客戶端連接,而所有的客戶端設置的遠程端口號是相同的。從上面的連接過程可以看出,當服務端響應某個客戶端的連接請求后,服務端的監聽狀態隨即結束,客戶端的連接請求也不會再被響應,也就是說,服務端不能夠同時和多個客戶端連接。為了使得服務端能夠同時和多個客戶端同時連接,我們往往在服務端采用WinSock控件數組來進行連接。

2.WinSock控件數組的應用

應用WinSock控件數組,能夠輕松實現一個服務端對應多個客戶端的連接請求,從而實現一對多的網絡版應用程序。其原理如下:

將WinSock控件的Index屬性設置為0,使之成為一個控件數組,再設置端口號等參數,用Listen方法使WinSock(0)控件進入監聽狀態。有客戶端請求連接時,WinSock(0)會觸發ConnectionRequest事件,此時,不使用WinSock(0)響應連接請求,而是裝入一個WinSock(i)控件,由WinSock(i)調用Accept方法建立連接。建立連接時,只需要在Accept后面注明從WinSock(0)的ConnectionRequest事件中得來的requestID參數,即可實現WinSock(i)和客戶端的連接。由于連接時未使用WinSock(0),所以其監聽狀態并未改變,還可以響應其它客戶端發出的連接請求。

參考文獻:

[1]李立宗.VB程序設計教程[M].南開大學出版社,2009.2.

[2]Andrew S.Tanenbaum.計算機網絡(第4版)[M].清華大學出版社,2004.8.

[3]袁帥等.Visual Basic編程實例教程[M].北京希望電子出版社,2002.11.

主站蜘蛛池模板: 国产黑人在线| 91久久国产综合精品女同我| 99精品这里只有精品高清视频| 狼友视频一区二区三区| 国产你懂得| 亚洲欧美精品在线| 中文无码精品A∨在线观看不卡| 亚洲人成色在线观看| 久热re国产手机在线观看| 国产精品欧美在线观看| 亚洲日本精品一区二区| 九九精品在线观看| 亚洲AV无码不卡无码| 这里只有精品国产| 中文字幕av无码不卡免费| 亚洲成人精品| 永久天堂网Av| 日a本亚洲中文在线观看| 亚洲国产精品日韩av专区| 黄片在线永久| 一区二区理伦视频| 综合色在线| 亚洲AⅤ综合在线欧美一区| 国产在线视频自拍| 国产18在线| 日韩美毛片| 国产精品视频观看裸模| 成人精品在线观看| 国产欧美成人不卡视频| 亚洲一区毛片| 日韩免费视频播播| 人妻丰满熟妇av五码区| 免费无遮挡AV| 日本一区二区三区精品视频| 免费无码AV片在线观看国产| 国产最新无码专区在线| 亚洲色图另类| 免费国产小视频在线观看| 在线观看国产小视频| 日韩精品免费在线视频| 国产精品免费p区| 欧美在线天堂| 2019国产在线| 99视频在线观看免费| 国产在线精彩视频论坛| 亚洲av片在线免费观看| 色偷偷一区二区三区| 亚洲高清日韩heyzo| 国产黄色视频综合| 日韩精品高清自在线| 色精品视频| 美女潮喷出白浆在线观看视频| 伊人久综合| 国产丝袜啪啪| 国产美女一级毛片| 国产日韩欧美成人| 在线观看无码av免费不卡网站| 91小视频在线观看免费版高清| av一区二区无码在线| 亚洲精品动漫在线观看| 国产91成人| 精品三级在线| 久久久久国色AV免费观看性色| 久久青草精品一区二区三区| 精品福利视频导航| 国产成人乱码一区二区三区在线| AV无码国产在线看岛国岛| AV不卡在线永久免费观看| 华人在线亚洲欧美精品| 国产福利在线免费| 日韩在线成年视频人网站观看| 在线视频精品一区| 国产在线精品网址你懂的| 欧美日本一区二区三区免费| 欧美成人国产| 久无码久无码av无码| 8090成人午夜精品| 久草视频精品| 又黄又爽视频好爽视频| 亚亚洲乱码一二三四区| 亚洲精品第一页不卡| 一级福利视频|