Bonjour,
si on veut fermer les connexions client pour toutes les situations, il faut le faire a chaque fois qu'on appel le .connect , que ça réussit, faire le .stop avant de sortir de la fonction et aussi quand il y a un return dans la fonction
J'imaginais que le destructeur de WifiClient devait faire ce travail au moment ou il est nettoyé en sortant du bloc dans lequel il est déclaré/utilisé
j'ai quelques cas qui ressorte : (sur la base source 15.02)
dans Actions.cpp / Call Externe +1 (ligne 321) juste après le dernier while qui utilise clientExt
dans EcranLCD / AccueilForceClick +1 (ligne 421) juste après le dernier while qui utilise clientESP_RMS
dans RMS_Externes.ino / Liste_NomsEtats +1 (ligne 71) juste après le dernier while qui utilise clientESP_RMS
dans server.ino / handleAjaxRMS +1 (ligne 177) juste après le dernier while qui utilise clientESP_RMS
dans Source_EnphaseEnvoy / LectureEnphase +1 (ligne 171) juste après le dernier while qui utilise clientFirmV5
dans source_Externe / CallESP32_Externe +1 (ligne 42) juste après le dernier while qui utilise clientESP_RMS [il y en a un ligne 144 qui fait le job]
dans source_HomeWizard / LectureHomeW +1 (ligne 39) juste après le dernier while qui utilise clientESP_RMS
dans MQTT.ino / testMQTTconnected() +1 (ligne 99) avant le return pour quitter la fonction
dans source_ShellyProEm / LectureShellyProEm +1 (ligne 59) juste après le dernier while qui utilise clientESP_RMS pour le GetDeviceInfo / !! Le client est connecté une nouvelle fois ligne 72 pour faire l'appel GetStatus
dans Source_SmartG / LectureSmartG +1 (ligne 38) juste après le dernier while qui utilise clientESP_RMS
--------
Bien que moins problématique : les .stop() qui ne sont pas utiles car on vient de faire un test qui permet de savoir qu'on est pas connecté if(!xxxx.connected( donc il n'y a rien a stopper ...
Action.cpp / CallExterne -1 ligne 299
RMS_Externes.ino / Liste_NomsEtats -1 ligne 45
server.ino / handleAjaxRMS -1 ligne 155
Source_Externe.ino / CallESP32_Externe -1 ligne 16
Source_HomeWizard / LectureHomeW -1 ligne 16
Source_ShellyEm.ino / LectureShellyEm -1 ligne 18
Source_ShellyProEm.ino / LectureShellyEm -1 ligne 73
Source_SmartG.ino / LectureSmartG -1 ligne 15
----
Questionnement pour les spécialistes :
la fonction .stop() n'est pas utile/traité si tous les octets envoyés par le serveur n'ont pas été lu, il faudrait donc faire un .flush() avant de faire le .stop()?
ou en
alternative un vider le buffer réception avant fermeture : while (client.connected()) {while (client.available()) {client.read()} delay(1);} client.stop();