網絡編程之winsock控件簡介使用方法

發表于:2007-05-25來源:作者:點擊數: 標簽:網絡編程使用方法winsock簡介控件
Winsock編程框架 在TCP應用中,為了建立一個 網絡 連接實例(Instance)的 服務器 端,只需設置本地服 務端口號,然后服務器調用方法Listen進入阻塞狀態,等待來自客戶的連接請求。與此對 應的客戶端不但要將Winsock的屬性RemoteHost置為服務器的名稱(IP地
           Winsock編程框架
     在TCP應用中,為了建立一個網絡連接實例(Instance)的服務器端,只需設置本地服

務端口號,然后服務器調用方法Listen進入阻塞狀態,等待來自客戶的連接請求。與此對

應的客戶端不但要將Winsock的屬性RemoteHost置為服務器的名稱(IP地址或網絡代號),

還應設置服務器所監聽的相應服務的端口號(RemotePort),如FTP服務在21號端口,HTTP

在81號端口等。然后調用方法Winsock.Connect向服務器發出請求。服務器接收到客戶請

求時,事件ConnectionRequest將被觸發。如服務器愿意提供服務,則可調用Aclearcase/" target="_blank" >ccept方法

接受連接。


  一旦連接建立,兩端均可使用SendData或GetData進行數據的發送或接收。事件

DataArrival將在另一端數據準備就緒時被觸發。


  UDP協議的實現與TCP不同的是,調用Sockets的兩端無需建立連接便可進行數據的傳

輸。因此,一個UDP應用可以同時擔任服務器或客戶的角色。


  以下程序代碼為Visual Basic Windows Sockets編程的基本框架。


   注釋:服務器方


   Private Sub Command1.Click()


   注釋:設置本地服務端口號


   Winsock1.localport=2048


  


注釋:服務器進入監聽狀態


   Winsock1.listen


   End Sub




  Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)


  注釋:收到客戶連接請求


  注釋:檢查Socket狀態


  If Winsock1.State <> sckClosed Then Winsock1.Close


  注釋:接受客戶請求


  Winsock1.Accept requestID


  End Sub


  


   Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)


   注釋:對方數據已準備好


   注釋:可用GetData()/SendData()接收/發送數據


   注釋:處理客戶數據


   ……


   End Sub


  


   Private Sub Form_Unload(Cancel As Integer)


   Winsock1.Close


   End Sub


  


   注釋:客戶方


   Private Sub Command1.Click()


   注釋:設置服務器網絡名


   Winsock1.RemoteHost=“193.168.1.40”


  


注釋:設置服務器相應服務端口號


Winsock1.RemotePort=2048


  


  注釋:向服務器發出連接請求


  Winsock1.Connect


  End Sub


  


  Private Sub Winsock1_Connect()


  注釋:服務器響應連接


  注釋:可以進行GetData()/SendData()進行數據傳輸


  ……


  End Sub


  


  Private Sub Form1.Unload()


   Winsock1.Close


  End Sub


  


  該段程序演示了用Visual Basic建立TCP連接的基本過程。因本文重在講解Sockets

編程,故文中未涉及VB自己封裝的故障處理函數Winsock1.Erroe(),讀者可自行編制。以

上程序段可作為一般TCP應用的基本框架加以擴展使用。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97