• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Winsock控件的屬性及應(yīng)用方法

      2016-04-26 11:41:42呂娜
      科技視界 2016年9期
      關(guān)鍵詞:屬性控件應(yīng)用

      呂娜

      【摘 要】隨著互聯(lián)網(wǎng)在各個(gè)領(lǐng)域中的應(yīng)用,計(jì)算機(jī)應(yīng)用系統(tǒng)的開發(fā)也由傳統(tǒng)方式轉(zhuǎn)向網(wǎng)絡(luò)環(huán)境。V B提供了基于Windows Sockets網(wǎng)絡(luò)編程接口的Winsock控件,使得開發(fā)TCP/IP變得簡單、輕松。本文簡要介紹Winsock控件的屬性及應(yīng)用方法。

      【關(guān)鍵詞】Winsock;控件;屬性;應(yīng)用

      隨著互聯(lián)網(wǎng)在各個(gè)領(lǐng)域中的應(yīng)用,計(jì)算機(jī)應(yīng)用系統(tǒng)的開發(fā)也由傳統(tǒng)方式轉(zhuǎn)向網(wǎng)絡(luò)環(huán)境。由此Visual Basic提供了基于Windows Sockets網(wǎng)絡(luò)編程接口的Winsock控件,使得開發(fā)TCP/IP變得簡單、輕松。本文簡要說明Winsock控件的屬性及應(yīng)用方法。

      Winsock控件是一個(gè)在運(yùn)行中不可見的控件,可以很容易的訪問TCP和UDP網(wǎng)絡(luò)服務(wù),使用它不需要了解TCP/IP的具體細(xì)節(jié)。只要設(shè)置Winsock控件的屬性和調(diào)用該控件的方法,就可以輕松編寫網(wǎng)絡(luò)應(yīng)用程序、連接到遠(yuǎn)程計(jì)算機(jī)并進(jìn)行雙向的數(shù)據(jù)交換。

      1 Winsock控件的屬性

      (1)BytesReceived(接受數(shù)據(jù)的字節(jié)數(shù))反映接收到的數(shù)據(jù)量,它以字節(jié)為單位,是只讀屬性,在設(shè)計(jì)時(shí)不可用。

      (2)LocalHostName(本地機(jī)器名),LocalIP(本地機(jī)器IP地址),LocalPort(本地機(jī)器通信程序端口),此屬性構(gòu)成本地機(jī)器的網(wǎng)絡(luò)地址。

      LocalHostName,LocalIP為只讀屬性,返回本地機(jī)器名和IP地址。

      (3)RemoteHost(遠(yuǎn)程機(jī)器名稱),RemoteHostIP(遠(yuǎn)程機(jī)器的IP地址),RemotePort(遠(yuǎn)程機(jī)器通信程序端口),此屬性構(gòu)成遠(yuǎn)程機(jī)器的網(wǎng)絡(luò)地址。

      RemoteHost和RemotePort用于設(shè)置遠(yuǎn)程主機(jī)和端口號(hào),RemoteHost應(yīng)用是一字符串,它可以是域名,也可以是IP地址。例如:要同IP地址為202.99.6.100,端口號(hào)為1024的程序通信,可設(shè)置為:

      Winsockl.RemoteHost=202.99.6.100

      Winsockl.RemotePort=1024

      (4)SocketHandle(提供給調(diào)用Winsock API的句柄參數(shù))用于調(diào)用低層Winsock API函數(shù)。在要求較高的情況下,可調(diào)用API來成更復(fù)雜的操作。

      (5)State(連接的當(dāng)前狀態(tài))屬性為返回當(dāng)前狀態(tài),在應(yīng)用中常讀取其值已得到當(dāng)前狀態(tài),從而決定下一步的處理。

      2 Winsock控件的應(yīng)用方法

      (1)Accept方法

      用于接受TCP連接請(qǐng)求。在TCP建立連接時(shí),當(dāng)有連接請(qǐng)求時(shí),用此方法接受請(qǐng)求建立連接。調(diào)用格式如下:Winsock對(duì)象.Accept Request ID

      (2)Bind方法

      用于存在多協(xié)議接口卡的情況下,用此方法把接口卡和IP地址捆綁在一起。調(diào)用格式為:Winsock對(duì)象.Bind端口號(hào),IP地址

      (3)Close方法

      用于關(guān)閉一個(gè)TCP連接。調(diào)用格式為:Winsock對(duì)象.Close

      (4)Connect方法

      用于向遠(yuǎn)程主機(jī)發(fā)出連接請(qǐng)求。調(diào)用格式為:Winsock對(duì)象. Connect﹝遠(yuǎn)程主機(jī)IP,遠(yuǎn)程端口﹞

      (5)Listen方法

      用于服務(wù)器程序,等待客戶訪問。調(diào)用格式為:Winsock對(duì)象. Listen

      (6)GetData和PeerData方法

      這兩種方法都用來獲取接受數(shù)據(jù)。GetData方法取回?cái)?shù)據(jù)后清除接收緩沖區(qū),PeerData方法只是獲取當(dāng)前接收數(shù)據(jù)拷貝,不清除緩沖區(qū)。調(diào)用格式為:Winsock對(duì)象. GetData(PeerData)變量﹝,數(shù)據(jù)類型﹝,最大長度﹞﹞

      (7)SendData方法

      用于發(fā)送數(shù)據(jù),可用在TCP和UDP兩種方式下。調(diào)用格式為:

      Winsock對(duì)象. SendData數(shù)據(jù)

      3 Winsock控件的主要事件

      (1)ConnectRequest事件

      當(dāng)遠(yuǎn)程計(jì)算機(jī)請(qǐng)求連接時(shí)出現(xiàn),僅適用于TCP服務(wù)器應(yīng)用程序。當(dāng)本地計(jì)算機(jī)接收到遠(yuǎn)程計(jì)算機(jī)發(fā)送的連接請(qǐng)求時(shí),控件的ConnectRequest事件將會(huì)被觸發(fā)。

      (2)SendProgress事件

      在發(fā)送數(shù)據(jù)期間出現(xiàn)。當(dāng)一端的計(jì)算機(jī)正在向另一端的計(jì)算機(jī)發(fā)送數(shù)據(jù)時(shí),SendProgress事件將被觸發(fā)。SendProgress事件記錄了當(dāng)前狀態(tài)下已發(fā)送的字節(jié)數(shù)和剩余字節(jié)數(shù)。

      參數(shù):bytesSent是從上一次激活事件以來已發(fā)送的字節(jié)數(shù):bytesRemaining是在發(fā)送緩沖區(qū)等待發(fā)送時(shí)的字節(jié)數(shù)。

      (3)SendComplete事件

      在完成一個(gè)發(fā)送操作時(shí)出現(xiàn)。當(dāng)所有數(shù)據(jù)發(fā)送完成時(shí),被觸發(fā)。

      (4)DataArrival事件

      當(dāng)數(shù)據(jù)到達(dá)時(shí)出現(xiàn)。DataArrival事件連接后,接受到了新數(shù)據(jù)就會(huì)觸發(fā)這個(gè)事件。注意:如果在接受到新數(shù)據(jù)前,緩沖區(qū)中非空,就不會(huì)觸發(fā)這個(gè)事件。

      (5)Error事件

      發(fā)生錯(cuò)誤時(shí)出現(xiàn)。當(dāng)在工作中發(fā)生任何錯(cuò)誤都會(huì)觸發(fā)這個(gè)事件。

      4 Winsock控件應(yīng)用實(shí)例

      TCP是一種面向連接的服務(wù),連接兩臺(tái)計(jì)算機(jī)就可彼此進(jìn)行數(shù)據(jù)傳輸。UDP 是一種雙向無連接協(xié)議。跟 TCP 的操作不同,計(jì)算機(jī)并不建立連接。另外 UDP 應(yīng)用程序可以是客戶機(jī),也可以是服務(wù)器;所以程序編寫上比TCP方式簡單。我們使用UDP建立一個(gè)“聊天”程序,“聊天”是指兩個(gè)程序能夠發(fā)送數(shù)據(jù)給對(duì)方,在此兩者之間是平等的、處于同一地位,沒有服務(wù)和客戶的區(qū)別。

      建立【聊天A】程序的步驟:

      (1)打開VB6.0中文版,建立標(biāo)準(zhǔn)程序,設(shè)置窗體標(biāo)題為“聊天A”。

      (2)把Winsock控件拖到窗體中,設(shè)置Protocol屬性為I-sckUDPProtocol,其他屬性為缺省值。

      (3)在窗體放置兩個(gè)標(biāo)簽和文本框,設(shè)置兩個(gè)標(biāo)簽的Caption屬性分別為“接收窗”和“發(fā)送窗”。

      編寫代碼:

      (1)在Form Load過程中設(shè)置網(wǎng)絡(luò)地址,設(shè)置LocalPort,RemoteHost和RemotePort屬性。

      【聊天A】的RemoteHost設(shè)置為運(yùn)行【聊天B】程序的主機(jī)地址。

      【聊天A】的RemotePort設(shè)置要與【聊天B】的LocalPort屬性一致。

      (2)在文本框的Change事件中,發(fā)送用戶輸入數(shù)據(jù)。

      (3)有數(shù)據(jù)到達(dá)時(shí),顯示對(duì)方數(shù)據(jù)內(nèi)容。

      到此【聊天A】程序設(shè)計(jì)完成,保存將其編譯為執(zhí)行文件。因?yàn)锳、B是平等的,所以【聊天B】程序設(shè)計(jì),只需要按上述原則在Form Load中設(shè)置好網(wǎng)絡(luò)地址其他部分則完全與A相同。

      【參考文獻(xiàn)】

      [1]張樹兵,戴紅,陳哲.Visual Basic6.0中文版入門與提高[M].北京:清華大學(xué)出版社,1999.

      [2]曾強(qiáng)聰.isual Basic6.0程序設(shè)計(jì)教程[M].北京:中國水利水電出版社,2003.

      [責(zé)任編輯:湯靜]

      猜你喜歡
      屬性控件應(yīng)用
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      對(duì)兩種實(shí)體觀的探析
      青春歲月(2016年22期)2016-12-23 13:59:29
      用好文件“屬性” 解決實(shí)際問題
      論集體建設(shè)用地使用權(quán)的用益物權(quán)屬性
      關(guān)于公允價(jià)值本質(zhì)與特性的探析
      GM(1,1)白化微分優(yōu)化方程預(yù)測(cè)模型建模過程應(yīng)用分析
      科技視界(2016年20期)2016-09-29 12:03:12
      煤礦井下坑道鉆機(jī)人機(jī)工程學(xué)應(yīng)用分析
      科技視界(2016年20期)2016-09-29 11:47:01
      氣體分離提純應(yīng)用變壓吸附技術(shù)的分析
      科技視界(2016年20期)2016-09-29 11:02:20
      會(huì)計(jì)與統(tǒng)計(jì)的比較研究
      就這樣玩會(huì)VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      铁力市| 额敏县| 漳平市| 天全县| 宝清县| 六安市| 香格里拉县| 磴口县| 阿克苏市| 清徐县| 介休市| 阿尔山市| 大庆市| 靖边县| 宝坻区| 澎湖县| 同仁县| 庆阳市| 高陵县| 双桥区| 旬阳县| 长岛县| 阿城市| 天峨县| 宜州市| 江陵县| 西青区| 襄樊市| 理塘县| 永嘉县| 罗定市| 成武县| 黄平县| 雷波县| 河曲县| 新蔡县| 青田县| 绥阳县| 荃湾区| 凤台县| 苏尼特左旗|