Comment puis-je obtenir le temps de latence entre le serveur et le client en C#?

Je suis en train de travailler sur un C# Serveur d'application pour un moteur de jeu, je suis en train d'écrire en ActionScript 3. Je suis sur un serveur faisant autorité comme modèle pour empêcher la tricherie et assurer un jeu équitable. Jusqu'à présent, tout fonctionne bien:

Lorsque le client commence à se déplacer, il indique au serveur et commence rendu localement; le serveur, puis, dit tout le monde que le client X a commencé à se déplacer, parmi les détails afin qu'ils puissent également commencer le rendu. Lorsque le client arrête de bouger, il indique au serveur, qui effectue des calculs basés à la fois que le client a commencé à se déplacer et le client de rendu tique retard, et les réponses de tout le monde, de sorte qu'ils peuvent mettre à jour avec les valeurs correctes.

Le truc, c'est que lorsque j'utilise la valeur par défaut de 20ms tique de retard sur les calculs du serveur, lorsque le client se déplace pour une assez longue distance, il y a une notable s'incliner vers l'avant quand il s'arrête. Si j'augmente légèrement le retard de 22ms, sur mon réseau local tout fonctionne très bien, mais dans d'autres endroits, l'inclinaison est toujours là. Après avoir expérimenté un peu, j'ai remarqué que le délai supplémentaire nécessaire est assez liée à la latence entre le client et le serveur. J'ai même bouilli vers le bas pour une formule qui fonctionne très bien: délai = 20 + (temps de latence /10).

Alors, comment pourrais-je procéder pour obtenir le temps de latence entre le client et le serveur (je suis à l'aide de sockets asynchrones). Le PROCESSEUR de l'effort ne peut pas être de trop, de ne pas avoir le serveur d'exécuter lentement. Aussi, est-ce vraiment la meilleure façon, ou est-il plus efficace/moyen plus facile de faire cela?

OriginalL'auteur DfKimera | 2009-04-21