SimpleSocket 1.0 examples

Dependencies:   EthernetNetIf SimpleSocket 1.0 mbed

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?

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