J'ai un problème avec la fonction d'exécution toutes les x secondes. Ma demande:Fonction d'exécution toutes les x secondes
créer, socket bind,
écouter sur cette prise,
accepte toutes les connexions entrantes et crée un nouveau thread pour chacun d'eux,
envoyer et recevoir des données,
et maintenant en boucle devrait envoyer données toutes les 1,5 sec, 5 sec et 10 sec.
J'essaie le faire comme ça (où le « temps » doit être le temps en millisecondes/nanosecondes):
while(true)
{
if(fmod(time, 1.5)==0)
{
/*sending data*/
}
if(fmod(time, 5)==0)
{
/*sending data*/
}
if(fmod(time, 10)==0)
{
/*sending data*/
}
}
Lorsque j'utilise time()
les données sont envoyées plusieurs fois par seconde, parce que time()
a une précision à une seconde. Pourriez-vous me conseiller quelle fonction je dois utiliser pour obtenir le temps avec une grande précision?
J'utilise Linux
Question 2: Comment puis-je fin au programme (peut-être à l'aide d'une touche) lorsque les discussions en cours d'exécution?
L'heure à laquelle vous parlez est-elle égale à 'std :: time (NULL)' à l'initialisation? Pourriez-vous éditer votre question pour nous montrer la déclaration de cette variable s'il vous plaît? – axelduch