複製鏈接
請複製以下鏈接發送給好友

Winsock控件

鎖定
Winsock控件通常被編程軟件用於訪問網絡。在新版本的.NET Visual Studio中已被其他命令代替而不再需要,老版本VB6.0這一代的程序設計軟件需要此控件。
中文名
Winsock控件
用    途
被編程軟件用於訪問網絡
使用人員
C++、Visual FoxPro開發人員
性    質
控件

Winsock控件基本介紹

本控件對用户不可視,可以很容易的訪問TCP和UDP網絡服務,被老版本Microsoft Access, Visual Basic ,Visual C++或Visual FoxPro開發人員使用。要編寫客户和服務器應用程序,不需要了解TCP或調用底層Winsock API的具體細節。通過設置Winsock控件的屬性和調用該控件的方法,可以很容易地連接到遠程計算機並進行雙向的數據交換。

Winsock控件控件添加方法

以VB為例:在工具欄上點右鍵,選components,然後在controls頁下點“browse”,找到c:\windows\system32\mswinsck.ocx,就會在列表裏看到Mircosoft Winsock control,前面的方格打上鈎就可以用了。其他軟件可參考類似方法。

Winsock控件屬性

BytesReceived屬性(接受數據的字節數),LocalHostName屬性(本地主機名稱),LocalIP屬性(本地主機IP),LocalPort屬性(本地主機端口),RemoteHost屬性(ActiveX控件)(遠程主機名稱),SocketHandle屬性(Socket句柄),State屬性(Winsock控件)(網絡狀態【連接、未連接】),Protocol屬性(Winsock控件)(協議【TCPUDP】),Name屬性(控件的名稱),Parent屬性(上級),RemotePort屬性(ActiveX控件)(遠程主機端口),Index屬性(ActiveX控件)(上下文,一般不用),Tag屬性(ActiveX控件)(標記,一般不用),Object屬性(ActiveX控件)。

Winsock控件方法

Accept方法(接受TCP連接請求),Bind方法,Close方法(Winsock控件)(關閉TCP連接),Listen方法(監聽TCP數據),PeerData方法(獲得數據),SendData方法(傳輸數據),GetData方法(WinSock控件),GetData方法(ActiveX控件)(獲得數據)。
注意:GetData方法取回數據後,將清除緩衝區,而PeerData方法只是獲取當前接收到的數據拷貝,而不清除緩衝區。

Winsock控件事件

Close事件(連接被關閉),ConnectionRequest事件(連接請求),DataArrival事件(數據到達),SendComplete事件(數據傳輸完畢),SendProgress事件(數據傳輸中),Error事件(發生錯誤),Connect事件(Winsock控件)(連接已經建立),Connect事件(ActiveX)。

Winsock控件TCP 基礎

數據傳輸協議允許創建和維護與遠程計算機的連接。連接兩台計算機就可彼此進行數據傳輸。
如果創建客户應用程序,就必須知道服務器計算機名或者 IP 地址(RemoteHost 屬性),還要知道進行“偵聽”的端口(RemotePort 屬性),然後調用 Connect 方法。
如果創建服務器應用程序,就應設置一個收聽端口(LocalPort 屬性)並調用 Listen 方法。當客户計算機需要連接時就會發生 ConnectionRequest 事件。為了完成連接,可調用 ConnectionRequest 事件內的 Accept 方法。
建立連接後,任何一方計算機都可以收發數據。為了發送數據,可調用 SendData 方法。當接收數據時會發生 DataArrival 事件。調用 DataArrival 事件內的 GetData 方法就可獲取數據。

Winsock控件UDP 基礎

用户數據報文協議 (UDP) 是一個無連接協議。跟 TCP 的操作不同,計算機並不建立連接。另外 UDP 應用程序可以是客户機,也可以是服務器。
為了傳輸數據,首先要設置客户計算機的 LocalPort 屬性。然後,服務器計算機只需將 RemoteHost 設置為客户計算機的 Internet 地址,並將 RemotePort 屬性設置為跟客户計算機的 LocalPort 屬性相同的端口,並調用 SendData 方法來着手發送信息。於是,客户計算機使用 DataArrival 事件內的 GetData 方法來獲取已發送的信息。