Example Get requests using Ethernet
Dependencies: EthernetInterface mbed-rtos mbed
Fork of TCPSocket_HelloWorld by
main.cpp@17:46186f7da7eb, 2015-12-08 (annotated)
- Committer:
- ndaniel7
- Date:
- Tue Dec 08 00:10:57 2015 +0000
- Revision:
- 17:46186f7da7eb
- Parent:
- 16:0a1035af04b4
Added example
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" |
ndaniel7 | 17:46186f7da7eb | 3 | #include <string> |
donatien | 0:bb128f0e952f | 4 | |
rquinn7 | 15:7a9850866be9 | 5 | Serial pc(USBTX,USBRX); |
rquinn7 | 15:7a9850866be9 | 6 | |
rquinn7 | 15:7a9850866be9 | 7 | extern "C" void mbed_mac_address(char * mac) { |
rquinn7 | 15:7a9850866be9 | 8 | |
rquinn7 | 15:7a9850866be9 | 9 | // define your own MAC Address ba:d7:05:47:1f:c6 |
rquinn7 | 15:7a9850866be9 | 10 | mac[0] = 0xba; |
rquinn7 | 15:7a9850866be9 | 11 | mac[1] = 0xd7; |
rquinn7 | 15:7a9850866be9 | 12 | mac[2] = 0x05; |
rquinn7 | 15:7a9850866be9 | 13 | mac[3] = 0x47; |
rquinn7 | 15:7a9850866be9 | 14 | mac[4] = 0x1f; |
rquinn7 | 15:7a9850866be9 | 15 | mac[5] = 0xc6; |
rquinn7 | 15:7a9850866be9 | 16 | |
rquinn7 | 15:7a9850866be9 | 17 | }; |
rquinn7 | 15:7a9850866be9 | 18 | |
emilmont | 7:65188f4a8c25 | 19 | int main() { |
rquinn7 | 15:7a9850866be9 | 20 | pc.baud(9600); |
rquinn7 | 15:7a9850866be9 | 21 | pc.printf("Running\n"); |
donatien | 0:bb128f0e952f | 22 | EthernetInterface eth; |
donatien | 0:bb128f0e952f | 23 | eth.init(); //Use DHCP |
rquinn7 | 15:7a9850866be9 | 24 | wait(15); |
donatien | 0:bb128f0e952f | 25 | eth.connect(); |
rquinn7 | 15:7a9850866be9 | 26 | wait(15); |
rquinn7 | 15:7a9850866be9 | 27 | pc.printf("MAC is %s\n", eth.getMACAddress()); |
rquinn7 | 15:7a9850866be9 | 28 | pc.printf("IP Address is %s\n", eth.getIPAddress()); |
donatien | 0:bb128f0e952f | 29 | |
emilmont | 7:65188f4a8c25 | 30 | TCPSocketConnection sock; |
rquinn7 | 15:7a9850866be9 | 31 | sock.connect("192.184.82.3", 5000); |
donatien | 0:bb128f0e952f | 32 | |
rquinn7 | 15:7a9850866be9 | 33 | char http_cmd[300] = "GET /create_board?playerNum=1&gameNum=144&board=1111000000000000000000000000000000000000000000000000000000000000 HTTP/1.0\n\n"; |
emilmont | 11:59dcefdda506 | 34 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
emilmont | 7:65188f4a8c25 | 35 | |
rquinn7 | 16:0a1035af04b4 | 36 | //Instead of printing here, do what you did before to convert the string, and just append buffer to a string (below the break), |
rquinn7 | 16:0a1035af04b4 | 37 | // replacing pc.printf |
rquinn7 | 16:0a1035af04b4 | 38 | //Then we can do string find to snipe the values we want (have to do math to grab the right amount) |
ndaniel7 | 17:46186f7da7eb | 39 | //Implemented example here, testStr now holds the received text (so you can search it) |
ndaniel7 | 17:46186f7da7eb | 40 | string testStr = ""; |
rquinn7 | 15:7a9850866be9 | 41 | char buffer[600]; |
donatien | 0:bb128f0e952f | 42 | int ret; |
emilmont | 7:65188f4a8c25 | 43 | while (true) { |
emilmont | 9:4757a976148d | 44 | ret = sock.receive(buffer, sizeof(buffer)-1); |
emilmont | 7:65188f4a8c25 | 45 | if (ret <= 0) |
emilmont | 7:65188f4a8c25 | 46 | break; |
emilmont | 9:4757a976148d | 47 | buffer[ret] = '\0'; |
rquinn7 | 15:7a9850866be9 | 48 | pc.printf("Received %d chars from server:\n%s\n", ret, buffer); |
ndaniel7 | 17:46186f7da7eb | 49 | string conv(buffer); |
ndaniel7 | 17:46186f7da7eb | 50 | testStr = testStr + conv; |
emilmont | 7:65188f4a8c25 | 51 | } |
ndaniel7 | 17:46186f7da7eb | 52 | pc.printf("Stringified %s\n", testStr); |
emilmont | 7:65188f4a8c25 | 53 | sock.close(); |
rquinn7 | 15:7a9850866be9 | 54 | wait(0.2); |
rquinn7 | 15:7a9850866be9 | 55 | sock.connect("192.184.82.3", 5000); |
rquinn7 | 15:7a9850866be9 | 56 | wait(0.2); |
rquinn7 | 15:7a9850866be9 | 57 | strcpy(http_cmd, "GET /create_board?playerNum=2&gameNum=144&board=1111000000000000000000000000000000000000000000000000000000000000 HTTP/1.0\n\n"); |
rquinn7 | 15:7a9850866be9 | 58 | pc.printf("Command is %s", http_cmd); |
rquinn7 | 15:7a9850866be9 | 59 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
donatien | 0:bb128f0e952f | 60 | |
rquinn7 | 15:7a9850866be9 | 61 | while (true) { |
rquinn7 | 15:7a9850866be9 | 62 | ret = sock.receive(buffer, sizeof(buffer)-1); |
rquinn7 | 15:7a9850866be9 | 63 | if (ret <= 0) |
rquinn7 | 15:7a9850866be9 | 64 | break; |
rquinn7 | 15:7a9850866be9 | 65 | buffer[ret] = '\0'; |
rquinn7 | 15:7a9850866be9 | 66 | pc.printf("Received %d chars from server:\n%s\n", ret, buffer); |
rquinn7 | 15:7a9850866be9 | 67 | } |
rquinn7 | 15:7a9850866be9 | 68 | |
rquinn7 | 15:7a9850866be9 | 69 | sock.close(); |
rquinn7 | 15:7a9850866be9 | 70 | wait(0.2); |
rquinn7 | 15:7a9850866be9 | 71 | sock.connect("192.184.82.3", 5000); |
rquinn7 | 15:7a9850866be9 | 72 | wait(0.2); |
rquinn7 | 15:7a9850866be9 | 73 | strcpy(http_cmd, "GET /polling?gameNum=144&playerNum=1 HTTP/1.0\n\n"); |
rquinn7 | 15:7a9850866be9 | 74 | pc.printf("Command is %s", http_cmd); |
rquinn7 | 15:7a9850866be9 | 75 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rquinn7 | 15:7a9850866be9 | 76 | |
rquinn7 | 15:7a9850866be9 | 77 | while (true) { |
rquinn7 | 15:7a9850866be9 | 78 | ret = sock.receive(buffer, sizeof(buffer)-1); |
rquinn7 | 15:7a9850866be9 | 79 | if (ret <= 0) |
rquinn7 | 15:7a9850866be9 | 80 | break; |
rquinn7 | 15:7a9850866be9 | 81 | buffer[ret] = '\0'; |
rquinn7 | 15:7a9850866be9 | 82 | pc.printf("Received %d chars from server:\n%s\n", ret, buffer); |
rquinn7 | 15:7a9850866be9 | 83 | } |
rquinn7 | 15:7a9850866be9 | 84 | |
rquinn7 | 15:7a9850866be9 | 85 | sock.close(); |
rquinn7 | 15:7a9850866be9 | 86 | wait(0.2); |
rquinn7 | 15:7a9850866be9 | 87 | sock.connect("192.184.82.3", 5000); |
rquinn7 | 15:7a9850866be9 | 88 | wait(0.2); |
rquinn7 | 15:7a9850866be9 | 89 | strcpy(http_cmd, "GET /fire?playerNum=1&gameNum=144&x=1&y=0 HTTP/1.0\n\n"); |
rquinn7 | 15:7a9850866be9 | 90 | pc.printf("Command is %s", http_cmd); |
rquinn7 | 15:7a9850866be9 | 91 | sock.send_all(http_cmd, sizeof(http_cmd)-1); |
rquinn7 | 15:7a9850866be9 | 92 | |
rquinn7 | 15:7a9850866be9 | 93 | while (true) { |
rquinn7 | 15:7a9850866be9 | 94 | ret = sock.receive(buffer, sizeof(buffer)-1); |
rquinn7 | 15:7a9850866be9 | 95 | if (ret <= 0) |
rquinn7 | 15:7a9850866be9 | 96 | break; |
rquinn7 | 15:7a9850866be9 | 97 | buffer[ret] = '\0'; |
rquinn7 | 15:7a9850866be9 | 98 | pc.printf("Received %d chars from server:\n%s\n", ret, buffer); |
rquinn7 | 15:7a9850866be9 | 99 | } |
rquinn7 | 15:7a9850866be9 | 100 | |
rquinn7 | 15:7a9850866be9 | 101 | sock.close(); |
emilmont | 7:65188f4a8c25 | 102 | eth.disconnect(); |
donatien | 5:01f6c3e112af | 103 | |
emilmont | 9:4757a976148d | 104 | while(1) {} |
donatien | 0:bb128f0e952f | 105 | } |