Example #1
0
    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 });
    }
Example #2
0
    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())),
            });
        }
    }