Hallo in die Runde,
ich stehe gerade mal voll auf dem Schlauch und bräuchte eine Idee für die folgende Problemstellung:
Ausgangslage:
- Client auf Rechner A
- Server auf Rechner B
- zwischen beiden findet per TCP ein Datenaustausch statt (ich sende JSONs vom Client zum Server)
Problemstellungen:
- Den Unterschied zwischen der jeweils lokalen Systemzeit feststellen.
Im Moment sende ich vom Client die Ausgabe von _NowCalc(), führe am Server ebenfalls ein _NowCalc() aus und berechne die Differenz mit _DateDiff
Das ergibt einen Sekunden genauen Wert.
Wie könnte ich das auf Millisekunden genau ermitteln? Klar, es wird einen Fehler/Abweichung durch die Laufzeit der TCP-Pakete geben - dazu Punkt 2 - Wie Messe ich die Laufzeit meiner Datenpakete zwischen Client und Server? Würde ich mir z.B. errechnen wenn ich die Differenz aus 1. kenne
- Alternativ: Wie schaffe ich es 2 Funktionen / Befehle auf diesen beiden Rechnern exakt zum gleichen Zeitpunkt zu starten?
Hintergundgeschichte:
Ich baue hier gerade ein "App-Performance-Monitoring" einer Applikation innerhalb einer RDP und/oder Citrix-Sitzung.
Der Server startet auf einem Test-Client die Citrix-Sitzung. In dieser wird der Client gestartet.
Dieser nimmt Verbindung zum Server-teil auf - das ist für mich die gemessene Anmeldezeit / Startzeit für die Sitzung.
Der Client startet dann das Programm des Kunden und führt verschiedene Aktionen durch. Die Laufzeiten ermittelt der Client "lokal".
Nun gibt es einen Zeitunterschied zwischen dem "Fertig" sein und bis man es über die Citrix-Verbindung sieht. Im lokalen Netzwerk nur ein paar duzend Millisekunden - aus den USA ggf. ein paar hundert.
Die "Fertig" Ermittlung mit dem Server-Teil (also über die Citrix-Sitzung) habe ich schon fertig (Optisch über die Farbänderungen der Pixel).
Damit ich diesen Zeitunterschied in Zahlen fassen kann müsste ich entweder den Zeitunterschied kennen - oder unabhängig von der lokalen zeit es schaffen auf beiden Rechnern einen Vorgang zu exakt gleichen Zeit zu starten.
Gruß,
BLinzer