SimpleSocket 1.0 examples
Dependencies: EthernetNetIf SimpleSocket 1.0 mbed
examples/ntpclient.cpp@40:84182fc63956, 2013-02-04 (annotated)
- Committer:
- yamaguch
- Date:
- Mon Feb 04 09:04:25 2013 +0000
- Revision:
- 40:84182fc63956
- Parent:
- ntpclient.cpp@39:108499af2b53
changed SimpleSocket libary name to SimpleSocketV1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yamaguch | 39:108499af2b53 | 1 | #include "EthernetNetIf.h" |
yamaguch | 39:108499af2b53 | 2 | #include "SimpleSocket.h" |
yamaguch | 39:108499af2b53 | 3 | |
yamaguch | 39:108499af2b53 | 4 | void ntpclient() { |
yamaguch | 39:108499af2b53 | 5 | EthernetNetIf eth; |
yamaguch | 39:108499af2b53 | 6 | eth.setup(); |
yamaguch | 39:108499af2b53 | 7 | |
yamaguch | 39:108499af2b53 | 8 | char *NTP_SERVER = "pool.ntp.org"; |
yamaguch | 39:108499af2b53 | 9 | printf("ntp server = %s\n", NTP_SERVER); |
yamaguch | 39:108499af2b53 | 10 | |
yamaguch | 39:108499af2b53 | 11 | while (true) { |
yamaguch | 39:108499af2b53 | 12 | DatagramSocket datagram; |
yamaguch | 39:108499af2b53 | 13 | char buf[48] = {0x23}; // 00100011 LI(0), Version(4), Mode(3: Client) |
yamaguch | 39:108499af2b53 | 14 | datagram.write(buf, sizeof(buf)); |
yamaguch | 39:108499af2b53 | 15 | datagram.send(NTP_SERVER, 123); |
yamaguch | 39:108499af2b53 | 16 | |
yamaguch | 39:108499af2b53 | 17 | if (datagram.receive() > 0) { |
yamaguch | 39:108499af2b53 | 18 | if (datagram.read(buf, sizeof(buf)) > 0) { |
yamaguch | 39:108499af2b53 | 19 | unsigned long seconds = 0; |
yamaguch | 39:108499af2b53 | 20 | for (int i = 40; i <= 43; i++) |
yamaguch | 39:108499af2b53 | 21 | seconds = (seconds << 8) | buf[i]; |
yamaguch | 39:108499af2b53 | 22 | set_time(time_t(seconds - 2208988800ULL)); |
yamaguch | 39:108499af2b53 | 23 | char timestamp[16]; |
yamaguch | 39:108499af2b53 | 24 | time_t jstime = time(NULL) + 9 * 3600; |
yamaguch | 39:108499af2b53 | 25 | strftime(timestamp, sizeof(timestamp), "%m/%d %X", localtime(&jstime)); |
yamaguch | 39:108499af2b53 | 26 | printf("Time: %s\n", timestamp); |
yamaguch | 39:108499af2b53 | 27 | break; |
yamaguch | 39:108499af2b53 | 28 | } |
yamaguch | 39:108499af2b53 | 29 | } else { |
yamaguch | 39:108499af2b53 | 30 | printf("no answer\n"); |
yamaguch | 39:108499af2b53 | 31 | wait(1.0); |
yamaguch | 39:108499af2b53 | 32 | } |
yamaguch | 39:108499af2b53 | 33 | } |
yamaguch | 39:108499af2b53 | 34 | } |