Hiroshi Yamaguchi / Mbed 2 deprecated SimpleSocketExamples 1.0

Dependencies:   EthernetNetIf SimpleSocket 1.0 mbed

Committer:
yamaguch
Date:
Wed Nov 02 12:16:51 2011 +0000
Revision:
33:39d9cdf99de8
Parent:
32:00114e36de90
Child:
34:a108bcc26b69
added examples

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 33:39d9cdf99de8 5 EthernetNetIf eth;
yamaguch 33:39d9cdf99de8 6 eth.setup();
yamaguch 32:00114e36de90 7 char *NTP_SERVER = "pool.ntp.org";
yamaguch 33:39d9cdf99de8 8 printf("ntp server = %s\n", NTP_SERVER);
yamaguch 32:00114e36de90 9
yamaguch 32:00114e36de90 10 while (true) {
yamaguch 32:00114e36de90 11 DatagramSocket datagram;
yamaguch 33:39d9cdf99de8 12 char buf[48] = {0x23}; // 00100011 LI(0), Version(4), Mode(3: Client)
yamaguch 32:00114e36de90 13 datagram.write(buf, sizeof(buf));
yamaguch 32:00114e36de90 14 datagram.send(NTP_SERVER, 123);
yamaguch 32:00114e36de90 15
yamaguch 32:00114e36de90 16 if (datagram.receive() > 0) {
yamaguch 33:39d9cdf99de8 17 if (datagram.read(buf, sizeof(buf)) > 0) {
yamaguch 32:00114e36de90 18 unsigned long seconds = 0;
yamaguch 32:00114e36de90 19 for (int i = 40; i <= 43; i++)
yamaguch 32:00114e36de90 20 seconds = (seconds << 8) | buf[i];
yamaguch 33:39d9cdf99de8 21 set_time(time_t(seconds - 2208988800ULL));
yamaguch 33:39d9cdf99de8 22 char timestamp[16];
yamaguch 32:00114e36de90 23 time_t jstime = time(NULL) + 9 * 3600;
yamaguch 33:39d9cdf99de8 24 strftime(timestamp, sizeof(timestamp), "%m/%d %X", localtime(&jstime));
yamaguch 33:39d9cdf99de8 25 printf("Time: %s\n", timestamp);
yamaguch 32:00114e36de90 26 break;
yamaguch 32:00114e36de90 27 }
yamaguch 33:39d9cdf99de8 28 } else {
yamaguch 33:39d9cdf99de8 29 printf("no answer\n");
yamaguch 33:39d9cdf99de8 30 wait(1.0);
yamaguch 32:00114e36de90 31 }
yamaguch 32:00114e36de90 32 }
yamaguch 32:00114e36de90 33 }