Vb.net 正在寻找循环的方法,直到TCP数据包的值=1
我试图从静态TCP端口号触发给定函数。当端口号接收到值为1的数据包时,它将触发一个内部函数Vb.net 正在寻找循环的方法,直到TCP数据包的值=1,vb.net,tcp,visual-studio-2019,do-loops,Vb.net,Tcp,Visual Studio 2019,Do Loops,我试图从静态TCP端口号触发给定函数。当端口号接收到值为1的数据包时,它将触发一个内部函数 strHostName = System.Net.Dns.GetHostName() strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressList(0).ToString() Dim IP As System.Net.IPAddress = System.Net.IPAddress.Parse(strIPAd
strHostName = System.Net.Dns.GetHostName()
strIPAddress = System.Net.Dns.GetHostEntry(strHostName).AddressList(0).ToString()
Dim IP As System.Net.IPAddress = System.Net.IPAddress.Parse(strIPAddress)
Dim PortNO As Integer = 5040
Dim MyData As String = ""
Dim LabView_TriggerValue As Integer = 1
Try
Dim client As TcpClient = New TcpClient(IP.ToString, PortNO)
Dim data As Byte() = New Byte(9998) {}
Dim responseData As String = String.Empty
Dim stream As NetworkStream = client.GetStream()
stream.ReadTimeout = 1000
Dim bytes As Int32 = stream.Read(data, 0, data.Length)
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
MyData = responseData.Replace(vbCrLf, "")
MessageBox.Show(responseData)
'Return MyData
Do
Loop Until responseData = LabView_TriggerValue
stream.Close()
client.Close()
Catch ex As Exception
Label1.Text = "" & ex.Message
End Try
我遇到了一个问题,我的Do…循环直到callout没有循环。无论端口5040上的值如何,代码都将运行。理想情况下,它应该保持循环。刷新端口5040,直到它接收到一个值为integer=1的数据包。如果
responseData
在其中没有更改,循环怎么会有用?您可能正在寻找wait
。也许您正在从C-heritage语言移植代码,其中赋值是一个表达式(因此,条件responseData=labView\u TriggerValue
将同时分配和返回分配的值)?VB不以这种方式工作。在表达式上下文中,=
是唯一的比较运算符,不分配。