Я работаю над каким-то проектом на сервере C #, и он идет неплохо.
Сегодня я перешел с асинхронного чтения на обычное чтение с использованием опроса. Теперь, когда я читал async, это не было проблемой, но теперь это так.
Когда клиент отключается, сокет генерирует исключение SocketException, и это исключение вызывает довольно длительную задержку. Если я не перестану генерировать это исключение, весь сервер остановится примерно на полсекунды. И это может показаться не стоящим, но сервер получит довольно большое количество подключений и отключений, так что это действительно занимает слишком много времени.
Теперь я уже проверяю свойство Socket.Connected, которое возвращает true, но после метода read возвращает false.
Так кто-нибудь знает, как "обновить" состояние соединения, прежде чем пытаться его прочитать?
PS: Я ловлю исключение, просто задержка слишком велика.