vb. net Ответ на клиенте TCP случайно задерживается - PullRequest
1 голос
/ 27 апреля 2020

Приложение, обрабатывающее данные, запрашивает данные с другого сервера, как правило, ответ мгновенный.

Один раз очень хорошо, а получение ответа занимает 4 минуты. Хост-сервер, к которому он подключается, регистрирует 4-минутный случай, на который сразу же был получен ответ. Похоже, что-то заставляет локальное приложение обрабатывать или обрабатывать ответ в течение 4 минут.

Эта проблема, по-видимому, возникает только тогда, когда в хост-системе, с которой запрашиваются данные, запускаются байты вредоносного ПО.

Вот мой код для отправки запроса данных.

    Public Function GetResponse(ByVal msg As String) As String
    'if calling this routine the calling routine needs to account for this throwing errors
    'generally the errors thrown would be connection related

    Dim tmpresponse As String = "noresponse"
    Dim bWriteBuffer() As Byte = Nothing
    Dim readbuffer As Byte() = New Byte(2000) {}
    Dim bytesRead As Integer = 0


    Using oClient As New TcpClient
            bWriteBuffer = System.Text.Encoding.ASCII.GetBytes(msg)
            oClient.Connect(RemoteEndPoint)
            Using tmpstream As NetworkStream = oClient.GetStream
                    tmpstream.Write(bWriteBuffer, 0, bWriteBuffer.Length)

                    '//blocks until a client sends a message 
                    bytesRead = tmpstream.Read(readbuffer, 0, 2000)
            tmpresponse = System.Text.Encoding.ASCII.GetString(readbuffer)
        End Using
    End Using

    Return tmpresponse
End Function
...