TCP Socket Hello World with Ethernet
Dependencies: EthernetInterface IAP mbed-rtos mbed
Fork of TCPSocket_HelloWorld by
main.cpp@18:f9b7d08b5217, 2015-05-12 (annotated)
- 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?
User | Revision | Line number | New 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 |