VB.NET UDP的應(yīng)用舉例分析
在一些編程過程中,我們能也發(fā)現(xiàn)UDP協(xié)議的使用。那么本篇文章,我們就來介紹一下如何使用VB.NET UDP來完成聊天程序的編寫。那么,在以往的學(xué)習(xí)構(gòu)成中,我們發(fā)現(xiàn)有些人喜歡用java編寫聊天程序,其實(shí)用VB.NET UDP協(xié)議編寫聊天程序也是很簡(jiǎn)單的,在這里把編寫聊天程序的步驟和代碼都給大家一一列出。先來看看什么是VB.NET UDP協(xié)議,是一種無連接協(xié)議,兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸類似于傳遞郵件:消息從一臺(tái)計(jì)算機(jī)發(fā)送到另一臺(tái)計(jì)算機(jī),但是兩者之間沒有明確的連接。
由于UDP 協(xié)議不需要顯式的連接,就需要在兩個(gè)Winsock控件中間發(fā)送數(shù)據(jù),關(guān)鍵需要完成以下的三步:
1.將RemoteHost屬性設(shè)置為另一臺(tái)計(jì)算機(jī)的名稱。
2.將RemotePort屬性設(shè)置為第二個(gè)控件的LocalPort屬性。
3.調(diào)用Bind方法,指定使用的LocalPort。
因?yàn)閮膳_(tái)計(jì)算機(jī)的地位可以看成“對(duì)等的”,這種應(yīng)用程序也被稱為點(diǎn)對(duì)點(diǎn)的應(yīng)用程序。 下面將用VB.NET UDP創(chuàng)建一個(gè)聊天應(yīng)用程序,兩個(gè)人可以通過它進(jìn)行實(shí)時(shí)的交談。請(qǐng)按照以下步驟制作:
1.創(chuàng)建一個(gè)新的 Standard EXE 工程。將缺省的窗體的名稱修改為frmPeerA,將窗體的標(biāo)題修改為“Peer A”。
2.在窗體中放入一個(gè) Winsock 控件,并將其命名為 udpPeerA。在“屬性”頁上,單擊“協(xié)議”并將協(xié)議修改為 UDPProtocol。
3.在窗體中添加兩個(gè) TextBox 控件。將***個(gè)命名為 txtSend,第二個(gè)命名為 txtOutput。
4.為窗體添加如下的代碼。
- Private Sub Form_Load()
- ′控件的名字為udpPeerA
- With udpPeerA
- ′重點(diǎn):必須將 RemoteHost 的值修改為對(duì)方計(jì)算機(jī)的名字。
- RemoteHost= ″PeerB″
- RemotePort = 1001 ′連接的端口號(hào)。
- Bind 1002 ′綁定到本地的端口。
- End With
- frmPeerB.Show′顯示第二個(gè)窗體。
- End Sub
- Private Sub txtSend_Change()
- ′在鍵入文本時(shí),立即將其發(fā)送出去。
- udpPeerA.SendData txtSend.Text
- End Sub
- Private Sub udpPeerA_DataArrival _
- (ByVal bytesTotal As Long)
- Dim strData As String
- udpPeerA.GetData strData
- txtOutput.Text = strData
- End Sub
#p#要?jiǎng)?chuàng)建第二個(gè)UDP伙伴,請(qǐng)按照以下步驟執(zhí)行:
1.在工程中添加一個(gè)標(biāo)準(zhǔn)窗體,將窗體的名字修改為 frmPeerB,將窗體的標(biāo)題修改為“Peer B”。
2.在窗體中放入一個(gè) Winsock 控件,并將其命名為 udpPeerB。
3.在“屬性”頁上,單擊“協(xié)議”并將協(xié)議修改為“UDPProtocol”。
4.在窗體上添加兩個(gè) TextBox 控件。將***個(gè)命名為 txtSend,第二個(gè)命名為 txtOutput。
5.在窗體中添加如下代碼
- Private Sub Form_Load()
- ′控件的名字為 udpPeerB。
- With udpPeerB
- ′重點(diǎn):必須將RemoteHost的值改為對(duì)方計(jì)算機(jī)的名字。
- RemoteHost= ″PeerA″
- RemotePort = 1002 ′要連接的端口。
- Bind 1001 ′綁定到本地的端口上。
- End With
- End Sub
- Private Sub txtSend_Change()
- ′在鍵入后立即發(fā)送文本。
- udpPeerB.SendData txtSend.Text
- End Sub
- Private Sub udpPeerB_DataArrival _
- (ByVal bytesTotal As Long)
- Dim strData As String
- udpPeerB.GetData strData
- txtOutput.Text = strData
- End Sub
運(yùn)行工程,然后在兩個(gè)窗體的txtSend TextBox中分別鍵入一些文本。鍵入的文字將出現(xiàn)在另一個(gè)窗體的 txtOutput TextBox中。 以上就是利用VB.NET UDP協(xié)議編寫的一個(gè)聊天室程序,還是很簡(jiǎn)單的吧。