J'ai écrit une application Delphi (2009) avec Indy (TCPServer/Client). Et j'ai un problème au niveau de TCPServer: il détecte la déconnexion (après un redémarrage du PC) du Client uniquement lorsque le client tente une nouvelle fois de se reconnecter au serveur. J'ai exécuté mon application pas à pas, et lorsque le client tente une reconnexion supérieure (après le redémarrage), le serveur lève (une exception silencieuse, je pense): Connection reset by peer. Pourquoi cette exception est-elle trop tardive?Vérifiez si la connexion est fermée!
(je pense que le fil ne soit pas libéré listeuse immédiatement)
Que pensez-vous?
Avant, (il y a quelques jours), le système fonctionnait parfaitement. En utilisant l'événement OnDisconnect pof TCPServer, il indique en temps réel quand la connexion était proche, mais maintenant, sans aucun code de modification, cela ne fonctionne pas (testé sur 3 réseaux locaux)! – djiga4me
En plus d'être globalement configurable dans le registre, vous pouvez également le définir pour une connexion à la fois avec ['setsockopt'] (http://msdn.microsoft.com/en-us/library/ms740476.aspx). Indy fournit un wrapper, 'GWindowsStack.SetSocketOption', dans l'unité * IdStackWindows *. –
Pas travaillé sur les messages de ne rien faire du serveur. Je n'utiliserai pas le registre. – djiga4me