Winsock控制項

Winsock控制項

Winsock控制項通常被編程軟體用於訪問網路。在新版本的.NET Visual Studio中已被其他命令代替而不再需要,老版本VB6.0這一代的程式設計軟體需要此控制項。

基本介紹

  • 中文名:Winsock控制項
  • 用途:被編程軟體用於訪問網路
  • 使用人員: C++、Visual FoxPro開發人員
  • 性質:控制項
介紹,控制項添加方法,屬性,方法,事件,TCP 基礎,UDP 基礎,

介紹

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

控制項添加方法

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

屬性

BytesReceived屬性(接受數據的位元組數),LocalHostName屬性(本地主機名稱),LocalIP屬性(本地主機IP),LocalPort屬性(本地主機連線埠),RemoteHost屬性(ActiveX控制項)(遠程主機名稱),SocketHandle屬性(Socket句柄),State屬性(Winsock控制項)(網路狀態【連線、未連線】),Protocol屬性(Winsock控制項)(協定【TCPUDP】),Name屬性(控制項的名稱),Parent屬性(上級),RemotePort屬性(ActiveX控制項)(遠程主機連線埠),Index屬性(ActiveX控制項)(上下文,一般不用),Tag屬性(ActiveX控制項)(標記,一般不用),Object屬性(ActiveX控制項)。

方法

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

事件

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

TCP 基礎

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

UDP 基礎

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

相關詞條

熱門詞條

聯絡我們