TCP Socket Hello World with Ethernet

Dependencies:   EthernetInterface IAP mbed-rtos mbed

Fork of TCPSocket_HelloWorld by Seeed

Committer:
yihui
Date:
Tue May 12 07:29:44 2015 +0000
Revision:
18:f9b7d08b5217
Parent:
17:0d74817db362
use LPC1768 serial number as unique MAC address

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:bb128f0e952f 1 #include "mbed.h"
donatien 0:bb128f0e952f 2 #include "EthernetInterface.h"
yihui 18:f9b7d08b5217 3 #include "IAP.h"
yihui 18:f9b7d08b5217 4
donatien 0:bb128f0e952f 5
emilmont 7:65188f4a8c25 6 int main() {
yihui 18:f9b7d08b5217 7 printf("-------- Arch Pro Ethernet -----------\n");
donatien 0:bb128f0e952f 8 EthernetInterface eth;
donatien 0:bb128f0e952f 9 eth.init(); //Use DHCP
donatien 0:bb128f0e952f 10 eth.connect();
yihui 18:f9b7d08b5217 11 printf("MAC Address is %s\n", eth.getMACAddress());
emilmont 2:e087e9b789e9 12 printf("IP Address is %s\n", eth.getIPAddress());
donatien 0:bb128f0e952f 13
emilmont 7:65188f4a8c25 14 TCPSocketConnection sock;
yihui 16:bfcf5f6274a2 15 sock.connect("httpbin.org", 80);
donatien 0:bb128f0e952f 16
yihui 16:bfcf5f6274a2 17 char http_cmd[] = "GET /get?helloworld HTTP/1.0\r\n\r\n";
emilmont 11:59dcefdda506 18 sock.send_all(http_cmd, sizeof(http_cmd)-1);
emilmont 7:65188f4a8c25 19
emilmont 9:4757a976148d 20 char buffer[300];
donatien 0:bb128f0e952f 21 int ret;
emilmont 7:65188f4a8c25 22 while (true) {
emilmont 9:4757a976148d 23 ret = sock.receive(buffer, sizeof(buffer)-1);
emilmont 7:65188f4a8c25 24 if (ret <= 0)
emilmont 7:65188f4a8c25 25 break;
emilmont 9:4757a976148d 26 buffer[ret] = '\0';
emilmont 9:4757a976148d 27 printf("Received %d chars from server:\n%s\n", ret, buffer);
emilmont 7:65188f4a8c25 28 }
donatien 0:bb128f0e952f 29
emilmont 7:65188f4a8c25 30 sock.close();
donatien 0:bb128f0e952f 31
emilmont 7:65188f4a8c25 32 eth.disconnect();
donatien 5:01f6c3e112af 33
emilmont 9:4757a976148d 34 while(1) {}
donatien 0:bb128f0e952f 35 }
yihui 17:0d74817db362 36
yihui 18:f9b7d08b5217 37 extern "C" void mbed_mac_address(char *mac) {
yihui 18:f9b7d08b5217 38 IAP iap;
yihui 18:f9b7d08b5217 39
yihui 18:f9b7d08b5217 40 int *serial_number_array = iap.read_serial(); // 4 int
yihui 18:f9b7d08b5217 41 char *ptr = (char *)serial_number_array;
yihui 18:f9b7d08b5217 42
yihui 18:f9b7d08b5217 43 mac[0] = ptr[0];
yihui 18:f9b7d08b5217 44 mac[1] = ptr[1];
yihui 18:f9b7d08b5217 45 mac[2] = ptr[2];
yihui 18:f9b7d08b5217 46 mac[3] = ptr[3];
yihui 18:f9b7d08b5217 47 mac[4] = ptr[4];
yihui 18:f9b7d08b5217 48 mac[5] = ptr[5];
yihui 17:0d74817db362 49 };
yihui 18:f9b7d08b5217 50
yihui 18:f9b7d08b5217 51