Commande M2M via socket et Windev

Voici une meilleure mise en forme du code :

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

J’utilise un thread de façon à ce que la réception des messages s’effectue en tâche de fond de manière permanente et que d’un autre coté je puisse faire des actions sur les messages reçus de type filtres ou tri …

A noter que le blocage ne m’est jamais arrivé pendant des manipulations, mais plutôt de nuit …
En ce qui concerne le PC, il ne bloque jamais si le programme n’est pas lancé.

Cordialement
B.Mellé

quelle version de windev ?
combien y a t’il de ligne dans votre tableau au moment de la coupure ?
normalement vous devriez utiliser une Bdd

il faudrait pouvoir tester le socket…
Si on le perd, on l’ouvre à nouveau…
Le tout est d’arriver à le tester ??

Je ne comprends pas votre réponse normalement vous devriez avoir le nombre de lignes dans votre table tb_msg a tout moment. et donc vous pouvez rajouter un simple bouton sur votre fenêtre qui affiche le nombre de ligne de la table ça vous permettra de savoir à chaque fois que le programme ou votre ordinateur s’arrête à combien de lignes vous êtes arrivés car peut-être que c’est une saturation mémoire a cause de ce tableau mémoire
Avec WinDev il y a peu de chances de faire planter un programme donc je pense plutôt pour votre ordinateur qui n’est pas très performant et dans ce cas il faudra utiliser une base de données au lieu d’utiliser une table. comme ça c’est votre disque qui stockera vos log.