VB2005中UDPClient 使用接收不到数据

tudouyudigua 2008-06-27 02:39:15
最近在做一个网络通信的测试实验,在上位机上我写了一个发送程序,在单片机上接收成果就回传一个“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

我看了好多参考实例,都是这样的,可我的怎么收不到数呢
...全文
55 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tudouyudigua 2008-06-27
  • 打赏
  • 举报
回复
发送的时候正常啊,就发送了“test”这几个字符
神之泪花 2008-06-27
  • 打赏
  • 举报
回复
路过,关注~~~~~~~

发送端的数据正常吗?

监视一下,在发送的时候..

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧