Работаю из софта с сервером по TCP синхронно.
В качестве сервера оборудование, которое может ответить на запрос, а может и не ответить, а может просто выключиться.
создаю соединение:
TcpClient client = new TcpClient(serverIP, port);
запрашиваю данные с сервера, жду ответ — какой-нибудь ввод данных на сервере.
В этот момент оборудование выключается по питанию.
Как узнать что соединение прервано?
По таймауту соединение не отваливается и я упорно жду ввода данных с оборудования, которого фактически уже нет.
Здравствуйте, nFalcon, Вы писали:
F>F>TcpClient client = new TcpClient(serverIP, port);
F>
F>запрашиваю данные с сервера, жду ответ — какой-нибудь ввод данных на сервере.
F>В этот момент оборудование выключается по питанию.
а какое оборудование? сам сервер или какой раутер где на пути между сервером и клиентом?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
F>По таймауту соединение не отваливается и я упорно жду ввода данных с оборудования, которого фактически уже нет.
Таймауты у NetworkStream менялись?
The default value, Infinite, specifies that the read operation does not time out.
Здравствуйте, HowardLovekraft, Вы писали:
F>>По таймауту соединение не отваливается и я упорно жду ввода данных с оборудования, которого фактически уже нет.
HL>Таймауты у NetworkStream менялись?
HL>HL> The default value, Infinite, specifies that the read operation does not time out.
Таймаут у стрима не менял(менял у TCP клиента)

Спасибо, сейчас попробую.