J'ai recherché sur le Web une solution à ma question, mais sans résultats jusqu'à présent.
J'ai fait un test avec une application Silverlight, un SocketServer et un SocketClient (avec une application Silverlight).
En mode débogage, avec les deux applications en cours d'exécution, lorsque j'ai fermé la fenêtre du navigateur, j'ai apprécié de voir qu'un événement est déclenché sur le serveur et la connexion Socket est automatiquement fermée.
Le grand mystère a commencé. Comment c'est vraiment arrivé?
Qu'en est-il de l'arrêt de l'ordinateur client en appuyant sur le bouton d'alimentation?
Mon événement sera-t-il toujours déclenché ou je me retrouverai avec un débordement de pile sur le serveur pour de nombreuses connexions Socket non fermées?Empêcher le débordement de la pile pour de nombreuses connexions Silverlight Socket non fermées
1
A
Répondre
1
Sur le serveur, vous devriez vraiment interroger vos connexions socket pour voir si elles sont encore en vie. Envoyer des messages "Are you still alive".
Habituellement, une fois qu'une connexion socket est perdue, l'envoi de données vers le bas le fera tomber avec une exception.
Malheureusement, les ordinateurs ne peuvent souvent pas détecter si une socket a perdu son lien jusqu'à ce que vous essayiez de faire quelque chose avec elle. La seule fois où il sait, c'est quand le client (ou le serveur) envoie une commande "close connection" (ce qui est souvent fait dans .NET via la méthode Socket.Close()).
Les douilles sont une douleur comme ça.
Questions connexes
- 1. Débordement de pile C#
- 2. after_initialize provoque un débordement de pile
- 3. Débogage d'un débordement de pile flash
- 4. Débordement de pile C++ - Visual Studio 2008
- 5. Silverlight StackPanel Détection de débordement
- 6. provoque un débordement de pile dans la fonction Clojure.
- 7. Silverlight vs débordement = « caché »
- 8. Comment concevoir un serveur avec de nombreuses connexions persistantes
- 9. C# .net looping débordement de pile de threads
- 10. débordement de pile en raison de l'allocation tas/désallocation
- 11. Non-blocage Socket Polling vs Blocage socket
- 12. Combien de connexions Socket un serveur de discussion Silverlight peut-il gérer?
- 13. Qu'est-ce qui provoque un débordement de pile?
- 14. Aide pour le vidage de la pile du serveur SQL
- 15. Éviter le débordement de pile (avec des séquences infinies de séquences F #)
- 16. Empêcher de nombreuses URL MVC différentes de remplir le cache ASP.NET
- 17. Débogueur VC pour afficher plus de cadres dans un débordement de pile
- 18. La stratégie de socket Silverlight ne fonctionne pas
- 19. Comment puis-je déterminer le nombre de connexions requises pour la mise en pool des connexions?
- 20. ASP.NET MVC: erreur de débordement de pile lors de l'appel Html.RenderPartial()
- 21. Comment obtenir la quantité de données TCP non ACK-ed pour le socket?
- 22. Socket non bloquant
- 23. Options de lancement pour forcer les connexions de socket Java vers localhost?
- 24. débordement de pile dans LINQ to SQL et le mot-clé
- 25. La mise à niveau d'Excel 2003 vers 2007 entraîne une erreur de débordement de pile sur le vba précédemment utilisé
- 26. pile de noyau pour le processus linux
- 27. Erreur sur le programme client/serveur c: "Connect: opération de socket sur non-socket"
- 28. SSA pour le code machine de la pile
- 29. Organisation de nombreuses formes sur de nombreuses pages
- 30. Pourquoi grep sur ma tranche de tableau provoque un débordement de pile en Perl?