Как обрабатывать NetworkStream.Ошибка записи

#c# #.net #networking

#c# #.net #сеть

Вопрос:

У меня есть два приложения — сервер и клиент. Я могу отправлять сообщения между ними, пока они оба запущены.

Когда я закрываю сервер и пытаюсь отправить сообщение с помощью NetworkStream.При записи я получаю исключение.

Какой был бы наилучший способ справиться с этим и уведомить клиента о том, что сервер не работает?

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

1. Какой клиент? Если она человек, то используйте, скажем, MessageBox, чтобы сообщить ей о грубости сервера.

Ответ №1:

Ping — плохая идея. Соединение также может прерваться между ping и фактическим сообщением.

Как вы сами указали:

завершите запись в try / catch и отобразите пользователю приятное маленькое сообщение.

Ответ №2:

Вы могли бы выполнить пинг сервера перед отправкой сообщения, если пинг завершится неудачей, затем сообщите пользователю и не отправляйте сообщение и т.д.

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

1. Бессмысленно. Просто отправьте сообщение, и если оно завершится неудачей, сообщите об этом пользователю.

2. И для проверки сбоя вводим NetworkStream. Напишите внутри, попробуйте уловить достаточно? Похоже, я могу проверить, получаю ли я исключение IOException.