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:使用協議。可選的協議是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在线日韩在线播放| 久久久久九九精品影院| 国内精品久久九九国产精品| 国内精自线i品一区202| www.亚洲一区| 亚洲丝袜中文字幕| 国产又大又粗又猛又爽的视频| 欧美精品亚洲精品日韩专区| 亚洲高清日韩heyzo| 欧美a在线看| 首页亚洲国产丝袜长腿综合| 国产一区二区网站| 国产 在线视频无码| 国产在线八区| 好紧太爽了视频免费无码| 亚洲欧美日韩精品专区| 最新精品国偷自产在线| 久久国产精品电影| 日韩欧美成人高清在线观看| 精品无码国产自产野外拍在线| 又粗又硬又大又爽免费视频播放| 久久semm亚洲国产| 国产一区二区精品福利| 日韩免费视频播播| 日韩欧美91| 人妻精品久久无码区| 亚洲中文无码h在线观看 | 日本不卡视频在线| 亚洲精品成人7777在线观看| 免费女人18毛片a级毛片视频| 亚洲精品自产拍在线观看APP| 日韩在线1| 天天躁夜夜躁狠狠躁躁88| 国产在线精品99一区不卡| 国产精品成人不卡在线观看| 亚洲人成网址| 中国美女**毛片录像在线| 欧美一级在线看| 国产精品99久久久| 亚洲品质国产精品无码| 97se亚洲综合在线| 国产在线视频自拍| 国产一二三区视频| 亚洲人成网7777777国产| 无码专区国产精品第一页| 日韩福利在线观看| 91久久夜色精品国产网站| 无遮挡一级毛片呦女视频| 一级黄色欧美| jizz亚洲高清在线观看| 久久毛片网| 人妻无码AⅤ中文字| 亚洲精品第一页不卡| 99热精品久久| 91视频国产高清| 国产精品色婷婷在线观看| 美女高潮全身流白浆福利区| 中文字幕日韩久久综合影院| 自偷自拍三级全三级视频| 99精品免费在线| AV天堂资源福利在线观看| 成人一区专区在线观看| 亚洲欧美不卡视频| 欧美一级视频免费| yy6080理论大片一级久久| 日韩AV手机在线观看蜜芽| 亚洲天堂视频在线播放| 成人小视频在线观看免费| 激情综合五月网| 亚洲看片网| 国产在线第二页| 91亚洲免费视频| 国产精品性| 日本影院一区| 91亚洲免费视频| 国产18在线播放| 日本影院一区| 一区二区偷拍美女撒尿视频| 精品国产成人三级在线观看| 91激情视频| 久久特级毛片|