Exemplo n.º 1
0
        public void Start()
        {
            var client = new TcpClient();

            try
            {
                client.Connect("127.0.0.1", 123);
            }
            catch
            {
                return;
            }
            var sock = client.Client;

            while (true)
            {
                var command = Console.ReadLine();
                if (command == "time")
                {
                    byte[] remdata  = new byte[1024];
                    var    sntpSend = new Sntp
                    {
                        VersionNumber = 4,
                        Mode          = 3,
                        SendingTime   = Sntp.GetSntpTime(DateTime.Now)
                    };
                    var binary = sntpSend.GetBinary();
                    sock.Send(binary);
                    sock.Receive(remdata);

                    var sntp = new Sntp(remdata);

                    Console.WriteLine(Sntp.GetRealTime(sntp.StartTime));
                }
            }
        }
Exemplo n.º 2
0
        private void ServStart()
        {
            Task <Socket> clientSock;
            var           clientData = new byte[1024];

            listener = new TcpListener(localPort);
            listener.Start();
            try
            {
                clientSock = listener.AcceptSocketAsync();
            }
            catch
            {
                servThread.Abort();
                return;
            }

            var i = 0;

            if (!clientSock.Result.Connected)
            {
                return;
            }
            while (true)
            {
                try
                {
                    i = clientSock.Result.Receive(clientData);
                }
                catch { }

                try
                {
                    if (i > 0)
                    {
                        var parsedData  = new Sntp(clientData);
                        var currentTime = DateTime.Now;
                        var sntp        = new Sntp
                        {
                            IndicatorCorrectness = IndicatorCorrectness,
                            VersionNumber        = parsedData.VersionNumber,
                            Mode             = Mode,
                            Strata           = Strata,
                            PollingInterval  = PollingInterval,
                            Accuracy         = Accuracy,
                            Delay            = Delay,
                            Dispersion       = Dispersion,
                            SourseIdentifier = SourseIdentifier,
                            UpdateTime       = Sntp.GetSntpTime(DateTime.Now.AddSeconds(seconds)),
                            StartTime        = Sntp.GetSntpTime(Sntp.GetRealTime(parsedData.SendingTime).AddSeconds(seconds)),
                            SendingTime      = Sntp.GetSntpTime(DateTime.Now.AddSeconds(seconds)),
                            TimeOfReceipt    = Sntp.GetSntpTime(currentTime)
                        };
                        var bytes     = sntp.GetBinary();
                        var checkSntp = new Sntp(bytes);
                        clientSock.Result.Send(bytes, bytes.Length, SocketFlags.None);
                    }
                }
                catch
                {
                    clientSock.Dispose();                    //.Close();
                    listener.Stop();
                    servThread.Abort();
                }
            }
        }