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)); } } }
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(); } } }