2009-08-25 4 views
8

J'ai une application qui utilise HttpListener, j'ai besoin de savoir quand le client s'est déconnecté, maintenant j'ai tout mon code dans un bloc try/catch qui est très moche et pas une bonne pratique.Détecter le client déconnecté avec HttpListener

Comment puis-je savoir si un client s'est déconnecté?

merci!

Répondre

8

Réponse courte: vous ne pouvez pas. Si un client arrête de parler, le socket sous-jacent peut rester ouvert et ne se fermera jamais; ça va juste attendre. Le moyen de détecter cela est de tenter d'effectuer une action sur cette connexion et si la connexion n'est plus valide, elle lèvera une sorte d'exception en fonction de ce qui s'est passé. Si vous utilisez HttpListener de manière asynchrone, il se peut que votre code soit légèrement modifié en termes d'essai/catch, mais malheureusement, c'est ce que vous devez faire. Aucun événement ne se déclenchera si le client se déconnecte.

Questions connexes