Обнаружить клиента отсоединить с элементе httplistener

У меня есть приложение, которое использует HttpListener, мне нужно знать, когда клиент отключен, прямо сейчас у меня есть весь мой код внутри блока try/catch, который довольно уродлив и не является хорошей практикой.

Как я могу знать, если клиент отключен?

спасибо!

1 ответов


короткий ответ: вы не можете. Если клиент перестает говорить, базовый сокет может оставаться открытым и никогда не закроется; это будет просто тайм-аут. Способ обнаружить это-попытаться выполнить действие над этим соединением, и если соединение больше не является допустимым, оно вызовет какое-то исключение в зависимости от того, что произошло. Если вы используете HttpListener асинхронно, он может немного очистить ваш код с точки зрения try/catch, но, к сожалению, это то, что вы застряли. Нет события, которое огонь, если клиент отключается.