2009-08-25 13 views
8

Ich habe eine Anwendung, die HttpListener verwendet, muss ich wissen, wenn der Client getrennt, jetzt habe ich alle meine Code in einem Versuch/Catch-Block, der ziemlich hässlich ist und keine gute Praxis.Detect Client trennen mit HttpListener

Wie kann ich wissen, ob ein Client getrennt wurde?

danke!

Antwort

8

Kurze Antwort: Sie können nicht. Wenn ein Client nicht mehr spricht, bleibt der zugrunde liegende Socket möglicherweise offen und wird nicht geschlossen. es wird nur eine Zeitüberschreitung. Um dies zu erkennen, versuchen Sie, eine Aktion für diese Verbindung auszuführen, und wenn die Verbindung nicht mehr gültig ist, löst sie eine Art Ausnahme aus, je nachdem, was passiert ist. Wenn Sie HttpListener asynchron verwenden, kann es Ihren Code ein wenig in Bezug auf einen try/catch bereinigen, aber leider stecken Sie damit fest. Es gibt kein Ereignis, das ausgelöst wird, wenn der Client die Verbindung trennt.