使用HttpListener检测客户端断开连接

我有一个使用HttpListener的应用程序,我需要知道客户端什么时候断开连接,现在我把所有代码放在一个try / catch块中,这是非常难看的,不是一个好习惯。

我怎么知道客户端是否断开连接?

谢谢!

简答:你不能。 如果客户端停止通话,则底层套接字可能保持打开状态并且不会关闭; 它只会超时。 检测到这种情况的方法是尝试对该连接执行操作,如果连接不再有效,它将根据发生的情况抛出某种exception。 如果您异步使用HttpListener,它可能会在try / catch方面稍微清理一下您的代码,但不幸的是,这就是您所坚持的。 如果客户端断开连接,则不会触发任何事件。