(17-08-2025, 07:31 PM)F1ATB a écrit : Je ne suis pas encore convaincu de l'intérêt de fermer les connections par un clientESP_RMS.stop(); En attendant j'en ai mis pour le Shelly, cela ne peut pas faire du mal.
Comme le mentionne Michy, le destructeur de WifiClient en sortie de routine doit faire cela.
Je ne le vois pas systématiquement dans les exemples de l'IDE Arduino.
Sur les milliers d'échanges par jour, si c'était nécessaire, on verrait beaucoup plus de problèmes.
A suivre
André
Une fois n'est pas coutume, je suis d'accord aussi bien avec André qu'avec Lolo69.
Le point de vue d'André se défend, dans la mesure où on demande déjà la déconnexion à chaque requête dans l'entête HTTP, en principe ce n'est pas utile de faire un stop() pour cela dans la foulée.
Code :
clientESP.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n");
Mais d'un autre côté, NetworkClient.stop() ne fait pas qu'interrompre la connexion. Dans le détail, la méthode stop() effectue plusieurs opérations importantes :
1. Fermeture de la connexion réseau - Elle termine proprement la connexion TCP/IP établie
2. Libération des ressources - Elle libère les buffers de réception et d'émission
3. Nettoyage des descripteurs - Elle nettoie les descripteurs de socket et les structures internes
4. Réinitialisation de l'état - Elle remet l'objet client dans un état "non connecté"
Donc si on peut raisonnablement penser qu'elle n'est pas requise pour les points 1 et 4, il reste intéressant de l'appeler pour les deux autres points.
Dans tous les cas, l'appeler systématiquement ne devrait pas faire de mal.