在TCP應用中,為了建立一個網絡連接實例(Instance)的服務器端,只需設置本地服
務端口號,然后服務器調用方法Listen進入阻塞狀態,等待來自客戶的連接請求。與此對
應的客戶端不但要將Winsock的屬性RemoteHost置為服務器的名稱(IP地址或網絡代號),
還應設置服務器所監聽的相應服務的端口號(RemotePort),如FTP服務在21號端口,HTTP
在81號端口等。然后調用方法Winsock.Connect向服務器發出請求。服務器接收到客戶請
求時,事件ConnectionRequest將被觸發。如服務器愿意提供服務,則可調用Accept方法
接受連接。
一旦連接建立,兩端均可使用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.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月