丁香婷婷网,黄色av网站裸体无码www,亚洲午夜无码精品一级毛片,国产一区二区免费播放

現(xiàn)在位置:范文先生網(wǎng)>理工論文>計(jì)算機(jī)信息技術(shù)>在VB中如何使用 Winsock 控件

在VB中如何使用 Winsock 控件

時(shí)間:2023-02-21 00:11:48 計(jì)算機(jī)信息技術(shù) 我要投稿
  • 相關(guān)推薦

在VB中如何使用 Winsock 控件

在VB中如何使用 Winsock 控件

衡陽(yáng)師范學(xué)院      徐雨明   郵編:421008    衡陽(yáng)計(jì)量測(cè)試中心   肖  瓊   郵編:421007

    摘要:本文介紹如何利用 WinSock 控件可以與遠(yuǎn)程計(jì)算機(jī)建立連接,并通過(guò)用戶數(shù)據(jù)文報(bào)協(xié)議 (UDP)或者傳輸控制協(xié)議 (TCP)進(jìn)行數(shù)據(jù)交換,并分別給出Winsock控件使用 UDP 協(xié)議和TCP協(xié)議進(jìn)行遠(yuǎn)程計(jì)算機(jī)連接的應(yīng)用實(shí)例

    關(guān)鍵詞:VB、控件、協(xié)議

1.引言

1.1  Winsock 控件可能的用途

    創(chuàng)建收集用戶信息的客戶端應(yīng)用程序,并將收集的信息發(fā)送到某中央服務(wù)器。

    創(chuàng)建一個(gè)服務(wù)器應(yīng)用程序,作為多個(gè)用戶的數(shù)據(jù)的匯入點(diǎn)。

    創(chuàng)建“聊天”應(yīng)用程序。

1.2 選擇通訊協(xié)議的標(biāo)準(zhǔn)

    在使用 WinSock 控件時(shí),首先需要考慮使用什么協(xié)議。可以使用的協(xié)議包括 TCP 和 UDP。兩種協(xié)議之間的重要區(qū)別在于它們的連接狀態(tài):

   (1、) TCP 協(xié)議控件是基于連接的協(xié)議,可以將它同電話系統(tǒng)相比。在開(kāi)始數(shù)據(jù)傳輸之前,用戶必須先建立連接。

   (2、) UDP 協(xié)議是一種無(wú)連接協(xié)議,兩臺(tái)計(jì)算機(jī)之間的傳輸類似于傳遞郵件:消息從一臺(tái)計(jì)算機(jī)發(fā)送到另一臺(tái)計(jì)算機(jī),但是兩者之間沒(méi)有明確的連接。另外,單次傳輸?shù)淖畲髷?shù)據(jù)量取決于具體的網(wǎng)絡(luò)。

    到底選擇哪一種協(xié)議通常是由需要?jiǎng)?chuàng)建的應(yīng)用程序決定的。下面的幾個(gè)問(wèn)題將有助于選擇適宜的協(xié)議:

   

在收發(fā)數(shù)據(jù)的時(shí)候,應(yīng)用程序是否需要得到客戶端或者服務(wù)器的確認(rèn)信息?如果需要,使用 TCP 協(xié)議,在收發(fā)數(shù)據(jù)之前先建立明確的連接。

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

    數(shù)據(jù)發(fā)送是間歇的,還是在一個(gè)會(huì)話內(nèi)?例如,如果應(yīng)用程序在某個(gè)任務(wù)完成的時(shí)候需要通知某個(gè)計(jì)算機(jī),UDP 協(xié)議是更適宜的。UDP 協(xié)議適合發(fā)送少量的數(shù)據(jù)。

1.3  協(xié)議的設(shè)置

    在設(shè)計(jì)時(shí),可以按如下方式設(shè)置應(yīng)用程序使用的協(xié)議:在“屬性”窗口中單擊“協(xié)議”,然后選擇 sckTCPProtocol 或者 sckUDPProtocol。也可以使用程序代碼來(lái)設(shè)置 Protocol 屬性,如下所示:

     Winsock1.Protocol = sckTCPProtocol

1.4  確定計(jì)算機(jī)的名稱

    在與遠(yuǎn)程計(jì)算機(jī)相連接的時(shí)候,需要知道它的 IP 地址或者它的“計(jì)算機(jī)名”。IP 地址是一串?dāng)?shù)字,每三個(gè)數(shù)字為一組,中間用點(diǎn)隔開(kāi)(形如 xxx.xxx.xxx.xxx)。通常,最易記住的是“計(jì)算機(jī)名”。

    要確定“計(jì)算機(jī)名”,請(qǐng)按照以下步驟執(zhí)行:

    (1)在計(jì)算機(jī)的“任務(wù)欄”上,單擊“啟動(dòng)”。

(2)在“設(shè)置“項(xiàng)中,單擊“控制面板“。

    (3)雙擊“網(wǎng)絡(luò)”圖標(biāo)。

    (4

)單擊“標(biāo)識(shí)”選項(xiàng)卡。

    (5)在“計(jì)算機(jī)名稱”框中可以找到計(jì)算機(jī)的名稱。

    (6)上面找到的計(jì)算機(jī)名稱可以作為 RemoteHost 屬性的值。

2. Winsock控件使用 TCP 協(xié)議應(yīng)用實(shí)例

    如果應(yīng)用程序要使用 TCP 協(xié)議,那么首先必須決定應(yīng)用程序是服務(wù)器還是客戶端。如果要?jiǎng)?chuàng)建一個(gè)服務(wù)器端,那么應(yīng)用程序需要“監(jiān)聽(tīng)”指定的端口。當(dāng)客戶端提出連接請(qǐng)求時(shí),服務(wù)器端能夠接受請(qǐng)求并建立連接。在連接建立之后,客戶端與服務(wù)器端可以自由地互相通訊。

    下列步驟創(chuàng)建一個(gè)非常簡(jiǎn)單的服務(wù)器:

    (1

) 要?jiǎng)?chuàng)建一個(gè) TCP 服務(wù)器,請(qǐng)按照以下步驟執(zhí)行:

    (2) 創(chuàng)建新的 Standard EXE 工程。

    (3) 將窗體的標(biāo)題改為“TCP 服務(wù)器”。

(4) 在窗體中放入一個(gè) Winsock 控件(c:\windows\system\mswinsck.ocx),并將它的名字改為 tcpServer。

    (5) 在窗體上添加兩個(gè) TextBox 控件。將第一個(gè)命名為 txtSend,第二個(gè)為 txtOutput。

    為窗體添加如下的代碼。

Private Sub Form_Load()

'將 LocalPort 屬性設(shè)置為一個(gè)整數(shù)。

'然后調(diào)用 Listen 方法。

tcpServer.LocalPort = 1001

tcpServer.Listen

End Sub

 

Private Sub tcpServer_ConnectionRequest (ByVal requestID As Long)

'檢查控件的 State 屬性是否為關(guān)閉的。

'如果不是,

'在接受新的連接之前先關(guān)閉此連接。

If tcpServer.State <> sckClosed Then _

tcpServer.Close

'接受具有 requestID 參數(shù)的'連接。

tcpServer.Accept requestID

End Sub

 

Private Sub txtSend_Change()

'名為 txtSend 的 TextBox 控件中

>

'包含了要發(fā)送的數(shù)據(jù)。當(dāng)用戶往文本框中

'鍵入數(shù)據(jù)時(shí),使用 SendData 方法

'發(fā)送輸入的字符串。

tcpServer.SendData txtSend.Text

End Sub

 

Private Sub tcpServer_DataArrival (ByVal bytesTotal As Long)

'為進(jìn)入的數(shù)據(jù)聲明一個(gè)變量。

'調(diào)用 GetData 方法,并將數(shù)據(jù)賦予名為 txtOutput 的 TextBox 的 Text 屬性。

Dim strData As String

tcpServer.GetData strData

txtOutput.Text = strData

End Sub

    上面的步驟創(chuàng)建了一個(gè)簡(jiǎn)單的服務(wù)器應(yīng)用程序。為了使它能夠工作,還必須為它創(chuàng)建一個(gè)客戶端的應(yīng)用程序。

    要?jiǎng)?chuàng)建 TCP 客戶端,請(qǐng)按照以下步驟執(zhí)行:

    (1) 在工程中添加一個(gè)新的窗體。

    (2) 將窗體的標(biāo)題改為“TCP Client”。

    (3)

【在VB中如何使用 Winsock 控件】相關(guān)文章:

VB編程中網(wǎng)格控件的選用及使用方法08-06

VB編程中網(wǎng)格控件的選用及使用方法08-06

VC 中靜態(tài)控件的特殊用法04-16

如何用VB存取SQL Server中的圖像數(shù)據(jù)04-12

VC++中靜態(tài)控件的特殊用法08-06

化學(xué)教學(xué)中如何正確使用多媒體08-02

利用VC中的通訊控件開(kāi)發(fā)串形通信程序08-06

談?wù)勗谥袑W(xué)數(shù)學(xué)教學(xué)中如何使用教材08-17

淺談如何使用蘇教版語(yǔ)文教材中的插圖研究08-20