程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 用Winsock創建TCPIP服務器程序

用Winsock創建TCPIP服務器程序

編輯:VB綜合教程

  Sockets是在Unix系統上提出來的,一開始主要是用於本地通訊,但很快就應用到C/S體系上。MicroSoft公司在此基礎上創建了WinSock控件,專門用於Windows接口,與Sockets完全兼容。Winsock控件對用戶來說是不可見的,它提供了訪問 TCP 和 UDP 網絡服務的方便途徑。Microsoft Access、Visual Basic、Visual C++ 或 Visual FoxPro 的開發人員都可使用它。為編寫客戶或服務器應用程序,不必了解 TCP 的細節或調用低級的 Winsock APIs。通過設置控件的屬性並調用其方法就可輕易連接到一台遠程機器上去,並且還可雙向交換數據。下面就利用VB5中的WinSock控件編寫一個網上聊天程序。

  一)網絡通信協議的基礎和選擇

  1.1 TCP(數據傳輸協議)基礎

  數據傳輸協議允許創建和維護與遠程計算機的連接。連接兩台計算機就可彼此進行數據傳輸。

  如果創建客戶應用程序,就必須知道服務器計算機名或者 IP 地址(RemoteHost 屬性),還要知道進行“偵聽”的端口(RemotePort 屬性),然後調用 Connect 方法。

  如果創建服務器應用程序,就應設置一個收聽端口(LocalPort 屬性)並調用 Listen 方法。當客戶計算機需要連接時就會發生 ConnectionRequest 事件。為了完成連接,可調用 ConnectionRequest 事件內的 Accept 方法。

  建立連接後,任何一方計算機都可以收發數據。為了發送數據,可調用 SendData 方法。當接收數據時會發生 DataArrival 事件。調用 DataArrival 事件內的 GetData 方法就可獲取數據。

  1.2 UDP(用戶數據文報協議)基礎

  用戶數據文報協議 (UDP) 是一個無連接協議。跟 TCP 的操作不同,計算機並不建立連接。另外 UDP 應用程序可以是客戶機,也可以是服務器。

  為了傳輸數據,首先要設置客戶計算機的 LocalPort 屬性。然後,服務器計算機只需將 RemoteHost 設置為客戶計算機的 Internet 地址,並將 RemotePort 屬性設置為跟客戶計算機的 LocalPort 屬性相同的端口,並調用 SendData 方法來著手發送信息。於是,客戶計算機使用 DataArrival 事件內的 GetData 方法來獲取已發送的信息。

  1.3 選擇通訊協議

  在使用 WinSock 控件時,首先需要考慮使用什麼協議。可以使用的協議包括 TCP 和 UDP。兩種協議之間的重要區別在於它們的連接狀態:

  TCP 協議是有連接的協議,可以將它同電話系統相比。在開始數據傳輸之前,用戶必須先建立連接。

  UDP 協議是一種無連接協議,兩台計算機之間的傳輸類似於傳遞郵件:消息從一台計算機發送到另一台計算機,但是兩者之間沒有明確的連接。另外,單次傳輸的最大數據量取決於具體的網絡。

  到底選擇哪一種協議通常是由需要創建的應用程序決定的。下面的幾個問題將有助於選擇適宜的協議:

  1. 在收發數據的時候,應用程序是否需要得到客戶端或者服務器的確認信息?如果需要,使用 TCP 協議,在收發數據之前先建立明確的連接。

  2. 數據量是否特別大(例如圖象與聲音文件)?在連接建立之後,TCP 協議將維護連接並確保數據的完整性。不過,這種連接需要更多的計算資源,因而是比較“昂貴”的。

  3. 數據發送是間歇的,還是在一個會話內?例如,如果應用程序在某個任務完成的時候需要通知某個計算機,UDP 協議是更適宜的。UDP 協議適合發送少量的數據。

  通訊協議的選擇是通過設置WinSock的Protocol屬性來實現的。下面選擇TCP通訊協議編寫網上聊天程序,在此之前必須知道一個極其重要的參數---服務器端的IP地址或計算機名。

  二)確定計算機的名字

  1. 在計算機的桌面上,右鍵單擊“網上鄰居”。

  2. 選擇“屬性”。

  3. 單擊“標識”選項卡。

  4. 在“計算機名稱”框中可以找到計算機的名稱。

  確定計算機的 IP地址

  1. 單擊“任務條”上的“啟動”。

  2. 選擇“運行”。

  3. 若服務器端操作系統為win95則在“打開”中填入“winipcfg”,若服務器端操作系統為winnt則在“打開”中填入“ipconfig”。

  4. 按下“確定”鍵。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 下一頁
  • 尾頁
  • 共3頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved