void HandleReceived(keijiro.Osc.Message m) { if (m.path != OscNtpServer.NTP_RESPONSE) return; var t3 = HighResTime.UtcNow; var t0 = System.DateTime.FromBinary(IPAddress.NetworkToHostOrder(System.BitConverter.ToInt64((byte[])m.data[0], 0))); var t1 = System.DateTime.FromBinary(IPAddress.NetworkToHostOrder(System.BitConverter.ToInt64((byte[])m.data[1], 0))); var t2 = System.DateTime.FromBinary(IPAddress.NetworkToHostOrder(System.BitConverter.ToInt64((byte[])m.data[2], 0))); var roundtrip = NtpUtil.Roundtrip(t0, t1, t2, t3); var delay = NtpUtil.Delay(t0, t1, t2, t3); stats.Add(new NtpStat() { delay = delay, roundtrip = roundtrip }); }
void HandleReceived(keijiro.Osc.Message m, IPEndPoint remoteEndpoint) { if (m.path != NTP_REQUEST) return; lock (_requests) { _requests.Enqueue(new NtpRequest() { remote = remoteEndpoint, t0 = (byte[])m.data[0], t1 = System.BitConverter.GetBytes(IPAddress.HostToNetworkOrder(HighResTime.UtcNow.ToBinary())), }); } }