Работаю из софта с сервером по TCP синхронно.
В качестве сервера оборудование, которое может ответить на запрос, а может и не ответить, а может просто выключиться.
создаю соединение:
TcpClient client = new TcpClient(serverIP, port);
запрашиваю данные с сервера, жду ответ — какой-нибудь ввод данных на сервере.
В этот момент оборудование выключается по питанию.
Как узнать что соединение прервано?
По таймауту соединение не отваливается и я упорно жду ввода данных с оборудования, которого фактически уже нет.