Socket.BeginReceive: время ожидания, если данные не поступают? - PullRequest
5 голосов
/ 20 июня 2019

Я получаю сообщение переменной длины, аналогичное этому вопросу , где длина тела моего сообщения указана в заголовке, и я асинхронно читаю тело в цикле, покавсе было передано.

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

Каков наиболее подходящий способ измерения скорости, чтобы я мог отключиться при необходимости?Я думаю, что я мог бы поместить объект DateTime в асинхронное состояние и, возможно, сделать некоторые вычисления?

Для контекста, это для датчика температуры Wi-Fi, который я строю с Arduino, который отправляет данные в пакетах, носоединение Wi-Fi действительно изворотливо, где это предназначено, чтобы использоваться.

...