Hiroshi Yamaguchi / Mbed 2 deprecated SimpleSocketExamples 1.0

Dependencies:   EthernetNetIf SimpleSocket 1.0 mbed

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?

UserRevisionLine numberNew 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 }