大鳥的學(xué)習(xí)樂園
          路漫漫其修遠(yuǎn)兮,吾將上下而求索
          posts - 26,comments - 27,trackbacks - 0
          Winsock控件
          2008-11-03 15:24
          Winsock控件對(duì)用戶是不可視的,可以很容易地訪問TCP和UDP網(wǎng)絡(luò)服務(wù)。其可以被Microsoft Access, Visual Basic ,Visual C++或Visual FoxPro開發(fā)人員使用。要編寫客戶和服務(wù)器應(yīng)用程序,不需要了解TCP或調(diào)用底層Winsock API的具體細(xì)節(jié)。通過設(shè)置Winsock控件的屬性和調(diào)用該控件的方法,可以很容易地連接到遠(yuǎn)程計(jì)算機(jī)并進(jìn)行雙向的數(shù)據(jù)交換。
          屬性
          BytesReceived屬性,LocalHostName屬性,LocalIP屬性,LocalPort屬性,RemoteHost屬性(ActiveX控件),SocketHandle屬性,State屬性(Winsock控件),Protocol屬性(Winsock控件),Name屬性,Parent屬性,RemoteHost屬性(ActiveX控件),RemotePort屬性(ActiveX控件),Index屬性(ActiveX控件),Tag屬性(ActiveX控件),Object屬性(ActiveX控件)。
          方法
          Accept方法,Bind方法,Close方法(Winsock控件),Listen方法,PeerData方法,SendData方法,GetData方法(WinSock控件),GetData方法(ActiveX控件)。
          事件
          Close事件,ConnectionRequest事件,DataArrival事件,SendComplete事件,SendProgress事件,Error事件,Connect事件(Winsock控件),Connect事件。
          Winsock 控件對(duì)用戶來說是不可見的,它提供了訪問 TCP 和 UDP 網(wǎng)絡(luò)服務(wù)的方便途徑。Microsoft Access、Visual Basic、Visual C++ 或 Visual FoxPro 的開發(fā)人員都可使用它。為編寫客戶或服務(wù)器應(yīng)用程序,不必了解 TCP 的細(xì)節(jié)或調(diào)用低級(jí)的 Winsock APIs。通過設(shè)置控件的屬性并調(diào)用其方法就可輕易連接到一臺(tái)遠(yuǎn)程機(jī)器上去,并且還可雙向交換數(shù)據(jù)。
          TCP 基礎(chǔ)
          數(shù)據(jù)傳輸協(xié)議允許創(chuàng)建和維護(hù)與遠(yuǎn)程計(jì)算機(jī)的連接。連接兩臺(tái)計(jì)算機(jī)就可彼此進(jìn)行數(shù)據(jù)傳輸。
          如果創(chuàng)建客戶應(yīng)用程序,就必須知道服務(wù)器計(jì)算機(jī)名或者 IP 地址(RemoteHost 屬性),還要知道進(jìn)行“偵聽”的端口(RemotePort 屬性),然后調(diào)用 Connect 方法。
          如果創(chuàng)建服務(wù)器應(yīng)用程序,就應(yīng)設(shè)置一個(gè)收聽端口(LocalPort 屬性)并調(diào)用 Listen 方法。當(dāng)客戶計(jì)算機(jī)需要連接時(shí)就會(huì)發(fā)生 ConnectionRequest 事件。為了完成連接,可調(diào)用 ConnectionRequest 事件內(nèi)的 Accept 方法。
          建立連接后,任何一方計(jì)算機(jī)都可以收發(fā)數(shù)據(jù)。為了發(fā)送數(shù)據(jù),可調(diào)用 SendData 方法。當(dāng)接收數(shù)據(jù)時(shí)會(huì)發(fā)生 DataArrival 事件。調(diào)用 DataArrival 事件內(nèi)的 GetData 方法就可獲取數(shù)據(jù)。
          UDP 基礎(chǔ)
          用戶數(shù)據(jù)文報(bào)協(xié)議 (UDP) 是一個(gè)無連接協(xié)議。跟 TCP 的操作不同,計(jì)算機(jī)并不建立連接。另外 UDP 應(yīng)用程序可以是客戶機(jī),也可以是服務(wù)器。
          為了傳輸數(shù)據(jù),首先要設(shè)置客戶計(jì)算機(jī)的 LocalPort 屬性。然后,服務(wù)器計(jì)算機(jī)只需將 RemoteHost 設(shè)置為客戶計(jì)算機(jī)的 Internet 地址,并將 RemotePort 屬性設(shè)置為跟客戶計(jì)算機(jī)的 LocalPort 屬性相同的端口,并調(diào)用 SendData 方法來著手發(fā)送信息。于是,客戶計(jì)算機(jī)使用 DataArrival 事件內(nèi)的 GetData 方法來獲取已發(fā)送的信息。
          posted on 2009-08-21 13:57 大鳥 閱讀(848) 評(píng)論(0)  編輯  收藏 所屬分類: VBA
          主站蜘蛛池模板: 龙门县| 东兰县| 洛宁县| 瓮安县| 石泉县| 绍兴市| 焉耆| 新兴县| 吴忠市| 黑山县| 文登市| 通许县| 巴塘县| 海阳市| 辽宁省| 黎城县| 德钦县| 新龙县| 常德市| 兴安盟| 建水县| 三门县| 涿州市| 五指山市| 沂水县| 微博| 荆门市| 乐都县| 连城县| 万源市| 镇赉县| 桐柏县| 湄潭县| 包头市| 汶上县| 曲松县| 镇巴县| 西吉县| 凤翔县| 若羌县| 扎囊县|