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ā)送的信息。 |