Bonjour, je réalise présentement un petit formulaire c# .NET qui se connecte sur un serveur via un sslStream et à un interval de temps donné reçoit et envoie des données.
Le problème est le suivant : si je débranche mon fil réseau (coupe la connexion), j'aimerais que mon programme le détecte et tente une reconnexion au serveur (en boucle jusqu'à ce qu'il réussisse). J'ai essayé quelques façons qui se sont toutes avérées peu fructueuses. Voici quelques bouts de code de ce que j'ai essayé :
Cependant, lorsque je coupe la connexion, le programme continue à envoyer des messages pendant 1-2 minutes avant de s'apercevoir que la connexion a été coupée (pourtant j'ai mis le WriteTimeout à 1000 ms), ensuite il capte une exception et ferme. Après, lorsque je le réouvre, il ne veut simplement plus se reconnecter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 if (client.Connected) //J'ai aussi essayé avec if(sslStream.CanWrite) { // Envoie du message sslStream.Write(messsage); sslStream.Flush(); } else { bool OK; do { //Tentative de reconnexion OK = RunClient(); } while (!OK); }
- Pourquoi le "client.Connected" ou "sslStream.CanWrite" ne retournent-t-ils pas "false" quand la connexion est perdue?
- Pourquoi est-ce aussi long avant que le programme lance une exception?
De l'aide serait grandement appréciée afin de résoudre mon problème Merci !
Partager