Bonjour,
Je développe actuellement une application multithread en C++ sous Visual Studio 2005.
Ce programme a pour but d'effectuer des calculs cycliquement et est dépendant de trames TCP/IP reçues d'un autre PC.
j'ai donc un thread dédié à cette communication TCP/IP (dans laquelle je suis client)
et un thread dédié aux différents calculs et rapports...(il est à noté que ces calculs peuvent prendre beaucoup de mémoire CPU et donc de temps)
En marche normale je reçois des trames TCP/IP que je décompose (par exemple : identifiant message sur 2 caractères+ data1 sur 4 + data2 +...) et ainsi de suite.
Le problème que je rencontre actuellement est que :par moment je reçois une trame qui se décompose incorrectement : comme si je n'avais pas reçu le début du message (l'identifiant)
du coup le message est perdu!
donc ma supposition est que le thread de calcul bloque mon application et donc par moment je ne reçois plus correctement mes trames....
je ne sais pas quoi faire, car en cours j'ai appris que les trames TCP/IP sont normalement envoyées et contrôlées donc aucune perte possible...
j'espère avoir bien décrit mon problème, et que quelqu'un saura ce qu'il est possible de faire.
résumé : mon application multithread
thread 1 : Calcul --> tourne indéfiniment --> lance des fonctions de rapports .txt ou SQL
thread 2: TCP/IP --> Recv--> décomposition de message --> suivant le cas Send --> lancement de calculs (plus ou moins long) puis retour à Recv etc..... (boucle infinie)
Merci d'avance,