je développe une application client en VB.Net. Pour la connexion réseau j'utilise un TcpClient. La connexion doit être permanente et je doit lire et écrire sur le même stream (de la classe NetworkStream). Tout va très bien tant que j'envoie et reçois des messages du serveur.
Mais dès que je reste un certain temps sans communiquer (environs 5 minutes), le serveur m'envoie un FIN ACK. Le problème c'est que je n'arrive absolument pas récupérer l'évènement qui me permet de savoir que le serveur demande la fin de la communication.
Du coup j'ai un double problèmes : <ol><li>lorsque je vérifie si mon client est connecté (j'envoie un paquet de 0 octets) ou que j'utilise la méthode "isBound", ca me retourne toujours "true", vu que je suis effectivement lié au serveur.</li><li>Mais lorsque j'essaie d'envoyer quelque chose, ca me coupe sec la communication. C'est assez logique, vu que le serveur a fait une demande de fin de communication "FIN ACK" et n'attent qu'une confirmation.</li></ol>
Comment puis-je savoir que le serveur me demande une déconnexion ? Ou comment faire pour qu'il n'y ait jamais cette demande de déconnexion, tout en sachant que je ne peux pas envoyer n'importe quoi simplement pour garder la connexion active, car je dois respecter un protocole bien précis ?
Ben hormis, essayer d'envoyer des données incorrectes (pas de début de trame, Défaut de CRC, ... par exemple), cela fera une activité, mais pas de traitement derrière.