Heure de reception d'un paquet UDP
2 participants
Page 1 sur 1
Heure de reception d'un paquet UDP
Bonjour,
Dans une application réseau, j'ai besoin de mesurer des pings. J'utilise des sockets UDP non bloquant. Il s'agit d'une application qui devra être capable de mesurer des pings sur un réseau local.
Lorsqu'un message est arrivé, la fonction recvfrom() me donne le message arrivé. Cette fonction est appelée toute les 16 ms. J'aimerais savoir s'il est possible de connaitre l'heure "exacte" d'arrivé du message lu par recvfrom(). Si je li un message arrivé depuis 15 ms, j'aimerais le savoir.
Merci.
Dans une application réseau, j'ai besoin de mesurer des pings. J'utilise des sockets UDP non bloquant. Il s'agit d'une application qui devra être capable de mesurer des pings sur un réseau local.
Lorsqu'un message est arrivé, la fonction recvfrom() me donne le message arrivé. Cette fonction est appelée toute les 16 ms. J'aimerais savoir s'il est possible de connaitre l'heure "exacte" d'arrivé du message lu par recvfrom(). Si je li un message arrivé depuis 15 ms, j'aimerais le savoir.
Merci.
Davidlouiz- Bavard
- Messages : 10
Date d'inscription : 27/05/2008
Re: Heure de reception d'un paquet UDP
A ma connaissance, la mesure des pings se fait avec un protocole spécial qui continent précisément les données 'temps' permettant de faire la mesure.Davidlouiz a écrit:Dans une application réseau, j'ai besoin de mesurer des pings. J'utilise des sockets UDP non bloquant. Il s'agit d'une application qui devra être capable de mesurer des pings sur un réseau local.
On utilise les RAW sockets et le protocole ICMP. Un exemple (non testé) :
http://www.cppfrance.com/codes/PING-ICMP-RAW-SOCKET-DEV-CPP_10926.aspx
Re: Heure de reception d'un paquet UDP
Merci.
Dans l'exemple du lien, le calcule du ping est effectué en soustrayant l'heure d’émission à l'heure de réception. (voir pingeur.c)
Le problème est le même car l'appel à la fonction GetTickCount() n'indique pas véritablement l'heure de réception du message.
Actuellement, je procède ainsi malgré tout en essayant de repasser très souvent pour avoir une idée précise de l'heure d'arrivé du message, mais cette solution n'est pas parfaite.
Dans l'exemple du lien, le calcule du ping est effectué en soustrayant l'heure d’émission à l'heure de réception. (voir pingeur.c)
- Code:
// . . .
time = GetTickCount(); // Récupération du temps courant
time -= (icmphdr->timestamp); // Différence entre réception et émission
Le problème est le même car l'appel à la fonction GetTickCount() n'indique pas véritablement l'heure de réception du message.
Actuellement, je procède ainsi malgré tout en essayant de repasser très souvent pour avoir une idée précise de l'heure d'arrivé du message, mais cette solution n'est pas parfaite.
Davidlouiz- Bavard
- Messages : 10
Date d'inscription : 27/05/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|