Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetNetIf SimpleSocket 1.0 mbed
ntpclient.cpp@32:00114e36de90, 2011-10-26 (annotated)
- Committer:
- yamaguch
- Date:
- Wed Oct 26 12:47:31 2011 +0000
- Revision:
- 32:00114e36de90
- Child:
- 33:39d9cdf99de8
UDP added
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| yamaguch |
32:00114e36de90 | 1 | #include "EthernetNetIf.h" |
| yamaguch |
32:00114e36de90 | 2 | #include "SimpleSocket.h" |
| yamaguch |
32:00114e36de90 | 3 | |
| yamaguch |
32:00114e36de90 | 4 | void ntpclient() { |
| yamaguch |
32:00114e36de90 | 5 | char *NTP_SERVER = "pool.ntp.org"; |
| yamaguch |
32:00114e36de90 | 6 | |
| yamaguch |
32:00114e36de90 | 7 | printf("ntp client - %s\n", NTP_SERVER); |
| yamaguch |
32:00114e36de90 | 8 | |
| yamaguch |
32:00114e36de90 | 9 | while (true) { |
| yamaguch |
32:00114e36de90 | 10 | DatagramSocket datagram; |
| yamaguch |
32:00114e36de90 | 11 | char buf[48] = {0x23};// 00100011 LI(0), Version(4), Mode(3: Client) |
| yamaguch |
32:00114e36de90 | 12 | datagram.write(buf, sizeof(buf)); |
| yamaguch |
32:00114e36de90 | 13 | datagram.send(NTP_SERVER, 123); |
| yamaguch |
32:00114e36de90 | 14 | |
| yamaguch |
32:00114e36de90 | 15 | if (datagram.receive() > 0) { |
| yamaguch |
32:00114e36de90 | 16 | if (datagram.read(buf, sizeof(buf))) { |
| yamaguch |
32:00114e36de90 | 17 | unsigned long seconds = 0; |
| yamaguch |
32:00114e36de90 | 18 | for (int i = 40; i <= 43; i++) |
| yamaguch |
32:00114e36de90 | 19 | seconds = (seconds << 8) | buf[i]; |
| yamaguch |
32:00114e36de90 | 20 | seconds -= 2208988800ULL; |
| yamaguch |
32:00114e36de90 | 21 | set_time((time_t) seconds); |
| yamaguch |
32:00114e36de90 | 22 | |
| yamaguch |
32:00114e36de90 | 23 | char buf[16]; |
| yamaguch |
32:00114e36de90 | 24 | time_t jstime = time(NULL) + 9 * 3600; |
| yamaguch |
32:00114e36de90 | 25 | strftime(buf, sizeof(buf), "%m/%d %X", localtime(&jstime)); |
| yamaguch |
32:00114e36de90 | 26 | printf("Time: %s\n", buf); |
| yamaguch |
32:00114e36de90 | 27 | break; |
| yamaguch |
32:00114e36de90 | 28 | } |
| yamaguch |
32:00114e36de90 | 29 | } |
| yamaguch |
32:00114e36de90 | 30 | } |
| yamaguch |
32:00114e36de90 | 31 | } |