Ищем способ зацикливания до значения пакета TCP = 1 - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь вызвать данную функцию из статического номера порта TCP. Когда номер порта получает пакет Value = 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(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 ... Loop До вызова не повторяется. Код выполняется независимо от значения на порте 5040. В идеале он должен продолжать циклически обновлять порт 5040 до тех пор, пока не получит пакет со значением целое число = 1.

...