NetworkStream Read() занимает 5 секунд

У меня есть реализация NetworkStream читать и отправлять данные. Иногда мой Read() Команда занимает около 5 секунд. Объем данных небольшой, < 100 байт. Как будто он пытается что-то прочитать, когда нет данных. По истечении этих 5 секунд данные не принимаются (receiveLength=0). Есть ли встроенный тайм-аут в команде чтения? Я не пользуюсь NetworkStream.ReceiveTimeout так как это закроет связь.

Проблема только появляется на некоторых компьютерах.

while (ReceiveStream.DataAvailable)
{
    // Receive
    lock (MessageBuffer)
    {
        int remainingLength = MessageBuffer.Length - MessageBufferUsedLength;

        try
        {
            int receivedLength = ReceiveStream.Read(MessageBuffer, MessageBufferUsedLength, remainingLength);
        }
        catch(Exception e)
        {
        }

    }
}
...

0 ответов

Другие вопросы по тегам