Страницы

Поиск по вопросам

суббота, 13 июля 2019 г.

BinaryReader есть ли timeout?

Есть ли способ, как можно установить время ожидания для BinaryReader?
Когда неожиданно происходит разрыв соединения, а затем его восстановление, программа-клиент шлёт данные, а вот серверная часть на BinaryReader.Read зависает и программа не идёт дальше этой строки. Как только все клиенты отсоединяются, программа оживает и начинает всё подгружать, как-будто из кэша какого-то и в конечном итоге выдаёт исключение о том, что удаленный клиент внезапно разорвал соединение.


Ответ

Установить таймаут для самого BinaryReader'а нельзя, но можно установить таймаут для TcpClient'а, котоорый поставляет ему несущий поток.
Для этого имеет смысл воспользоваться параметром TcpClient.ReceiveTimeout до запроса NetworkStream'а.
Ответ честно украден отсюда

Комментариев нет:

Отправить комментарий