VB2005中UDPClient 使用接收不到数据
最近在做一个网络通信的测试实验,在上位机上我写了一个发送程序,在单片机上接收成果就回传一个“Test is ok”。可上位机我写的测试程序在两个上位机上都接收不到,请大家帮忙解决以下,代码如下:
发送端:
Imports System.Net
Imports System.Net.Sockets
Imports System
Imports System.Text
Public Class Form1
Public UDPClient1 As New UdpClient
Dim recudpclient As UdpClient
Public LocalIP As New IPEndPoint(IPAddress.Any, 0)
Public ThreadReceive As System.Threading.Thread
Public l As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As String, s1 As String
s = System.Net.Dns.GetHostName
s1 = System.Net.Dns.Resolve(s).AddressList(0).ToString
TBID.Text = s1
'Dim ip As IPAddress = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName).AddressList.GetValue(0)
'TBID.Text = LocalIP.Address.ToString
'TBPort.Text = LocalIP.Port.ToString
TBDeID.Text = ""
TBDePort.Text = ""
RTBSendbuff.Text = ""
RTBRecbuff.Text = ""
End Sub
Private Sub Btsend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btsend.Click
Dim glIP As IPAddress
Dim GLPORT As Integer
Try
's = System.Net.Dns.GetHostAddresses
glIP = IPAddress.Parse(TBID.Text)
GLPORT = TBPort.Text
UDPClient1.Connect(glIP, GLPORT)
Dim senddata As [Byte]() = Encoding.ASCII.GetBytes(RTBSendbuff.Text)
UDPClient1.Send(senddata, senddata.Length)
UDPClient1.Close()
l = False
While (Not l)
recudpclient = New System.Net.Sockets.UdpClient(12000)
Dim deIP As IPAddress
deIP = IPAddress.Parse(TBDeID.Text)
Dim port As Integer
port = TBDePort.Text
Dim recid As New IPEndPoint(deIP, port)
Dim receiveBytes As [Byte]() = recudpclient.Receive(recid)
Dim strReturnData As String = System.Text.Encoding.Unicode.GetString(receiveBytes)
If strReturnData = "test is ok" Then
l = True
RTBRecbuff.Text = strReturnData.ToString
End If
recudpclient.Close()
End While
Catch ex As Exception
Console.WriteLine(ex.Message)
RTBRecbuff.Text = RTBRecbuff.Text & vbCrLf & ex.Message
End Try
End Sub
End Class
接收端:
Imports System.Net
Imports System.Net.Sockets
Imports System
Imports System.Text
Public Class Form1
Public UDPClient1 As New UdpClient
Dim sendudpclient As UdpClient
Public LocalIP As New IPEndPoint(IPAddress.Any, 0)
'Public ThreadReceive As System.Threading.Thread
Public l As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim s As String, s1 As String
s = System.Net.Dns.GetHostName
s1 = System.Net.Dns.Resolve(s).AddressList(0).ToString
TBID.Text = s1
'Dim ip As IPAddress = System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName).AddressList.GetValue(0)
'TBID.Text = LocalIP.Address.ToString
'TBPort.Text = LocalIP.Port.ToString
TBDeID.Text = ""
TBDePort.Text = ""
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim glIP As IPAddress
Dim GLPORT As Integer
Try
's = System.Net.Dns.GetHostAddresses
glIP = IPAddress.Parse(TBID.Text)
GLPORT = TBPort.Text
UDPClient1 = New System.Net.Sockets.UdpClient(11000)
Dim recid As New IPEndPoint(IPAddress.Any, 0)
Dim receiveBytes As [Byte]() = UDPClient1.Receive(recid)
Dim strReturnData As String = System.Text.Encoding.Unicode.GetString(receiveBytes)
RTB1.Text = strReturnData
UDPClient1.Close()
Dim senddata As [Byte]() = Encoding.ASCII.GetBytes("Test is ok")
sendudpclient.Connect(glIP, GLPORT)
UDPClient1.Send(senddata, senddata.Length)
UDPClient1.Close()
Catch ex As Exception
Console.WriteLine(ex.Message)
RTB1.Text = RTB1.Text & vbCrLf & ex.Message
End Try
End Sub
End Class
我看了好多参考实例,都是这样的,可我的怎么收不到数呢