(버전 = 3, 모드 = 3), getTimeAndDate 및 sendNTPpacket 호출 된 메소드에서
http://www.instructables.com/id/Arduino-Internet-Time-Client/step2/Code/
봐.
전송되는 패킷입니다. 이것은 버퍼를 설정하고 바이너리 (0b)와 16 진수 (0x)가 48 문자 버퍼에 설정되었음을 보여줍니다. 주소는
Udp.read(packetBuffer,NTP_PACKET_SIZE); // read the packet into the buffer
unsigned long highWord, lowWord, epoch;
highWord = word(packetBuffer[40], packetBuffer[41]);
lowWord = word(packetBuffer[42], packetBuffer[43]);
epoch = highWord << 16 | lowWord;
epoch = epoch - 2208988800 + timeZoneOffset;
flag=1;
setTime(epoch);
setTime는 아두 이노 시간 라이브러리의 일부입니다,
여기
memset(packetBuffer, 0, NTP_PACKET_SIZE);
packetBuffer[0] = 0b11100011;
packetBuffer[1] = 0;
packetBuffer[2] = 6;
packetBuffer[3] = 0xEC;
packetBuffer[12] = 49;
packetBuffer[13] = 0x4E;
packetBuffer[14] = 49;
packetBuffer[15] = 52;
Udp.beginPacket(address, 123);
Udp.write(packetBuffer,NTP_PACKET_SIZE);
Udp.endPacket();
는 수신 된 패킷에 발생하는 것입니다, NTP는 시간 서버, 그래서 시대는 초 이후이어야한다 경우에 당신은 C# 버전을 원하는
https://en.wikipedia.org/wiki/Network_Time_Protocol
그러나 1 월 1 일 (시대 검색) 여기 제안 1900, 나는 코드에서 컴파일, 여기 발견 예외적 인 대답과 그것이 작동합니다. 이것은 아마도 당신에게 더 이해 될 것이며, 1900 년 1 월 1 일의 시대의 사용을 보여줄 것입니다.
How to Query an NTP Server using C#?
쉽게 유사성을 볼 수 있습니다.
예 이미 해당 링크를 확인했습니다. 하지만 보낸 파일이 아닌 ntp에서만받은 파일을 볼 수 있습니다. – Sharpless512