Commande M2M via socket et Windev

Bonjour,

Je m’insère dans le sujet avec un problème quelque peu différent mais à base de Windev.
J’ai une IPX800-V3 pour gérer mes extérieurs : bassins et lumières avec détecteur de présence, température et luminosité. J’ai après pas mal d’essais en lisant ce forum fini par obtenir un fonctionnement satisfaisant, par contre j’aurais aimé journaliser les différents évènements de la V3 de façon à conserver une trace en particulier du franchissement des seuils de luminosité et de température sur l’année.
J’ai essayé les mails mais ce n’est pas très pratique à remettre en forme.
J’ai donc activé des push sur la V3 et j’ai fait un petit programme de capture qui utilise une procédure automatique (thread) pour lire la socket. Cela fonctionne, je décortique le message, le le stocke dans une table sur laquelle je peux faire d’autres traitements.

Mon seul problème est le suivant : au bout de quelques heures, au mieux quelques jours puisque je laisse le programme tourner un permanence, la carte réseau de mon poste semble se bloquer :

  • pas de message d’erreur du programme.
  • mais plus d’accès internet ni disques réseaux.

Si quelqu’un à fait quelque chose de similaire, merci de me faire un retour d’expérience.
Ci dessous le code de la procédure automatique :
PROCEDURE reception()
sIP est une chaîne
_sMessage est une chaîne _

// Tant que le thread n’est pas arrêté, on attend des messages
BOUCLE
_ // Attente de connexion_
_ QUAND EXCEPTION DANS_
_ SI SocketAttendConnexion(csSocketServeur,30)=Vrai ALORS_
_ csSocketactive=SocketAccepte(csSocketServeur)_
_ SI EnModeTest()=Vrai ALORS_
_ Trace(« Connexion sur : »+csSocketServeur+« |Client : « +csSocketactive)_
_ FIN_
_ SocketChangeModeTransmission(csSocketServeur,SocketSansMarqueurFin)_
_ //lit_msg(csSocketactive)_
_ sIP=SocketClientInfo(csSocketactive,SocketAdresse)_
_ sMessage=UTF8VersChaîne(SocketLit(csSocketactive,Vrai))_
_ SI sMessage<> » » ALORS_
_ sai_msg=sMessage_
_ TableAjouteLigne(tb_msg,sIP,DateVersChaîne(DateSys())+" "+Gauche(HeureVersChaîne(HeureSys()),8),ExtraitChaîne(sMessage,1,RC),0)_
_ flog(« Msg : « +ExtraitChaîne(sMessage,1,RC))_
_ FIN_
_ SocketFerme(csSocketactive)_
_ csSocketactive= » »_
_ FIN_
_ FAIRE_
_ Erreur(« Problème détecté sur la socket de réception »,ExceptionInfo())_
_ SORTIR_
_ FIN_
_ Multitâche(-2)_
FIN