DNS, DHCPClient, Http Client, TCP Client, GET
Dependencies: WIZnetInterface mbed
Fork of DNSWebClient by
main.cpp
- Committer:
- embeddist
- Date:
- 2015-07-06
- Revision:
- 0:7d9fbdfdd41a
- Child:
- 1:e3dba8368eda
File content as of revision 0:7d9fbdfdd41a:
#include "mbed.h" #include "EthernetInterface.h" #define ECHO_SERVER_PORT 80 // HTTP defaults to port 80 char serverName[] = "openweathermap.org"; #define BUFFER_SIZE 2048 DigitalOut myled(LED1); // Initialize the Ethernet client library EthernetInterface eth; int main() { char http_cmd[]= "GET / HTTP/1.0\r\n\r\n"; char buffer[BUFFER_SIZE]; // Enter a MAC address for your controller below. uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x1D, 0x62, 0x11}; // initializing MAC address eth.init(mac_addr); // Check Ethenret Link if(eth.link() == true) printf("- Ethernet PHY Link-Done \r\n"); else printf("- Ethernet PHY Link- Fail\r\n"); // Start Ethernet connecting: Trying to get an IP address using DHCP if ( eth.connect() < 0 ){ printf("Fail - Ethernet Connecing"); }else{ // Print your local IP address: printf("IP=%s\n\r",eth.getIPAddress()); printf("MASK=%s\n\r",eth.getNetworkMask()); printf("GW=%s\n\r",eth.getGateway()); } // Initialize the TCPSocketConnection // with the IP address and port of the server // that you want to connect to (port 80 is default for HTTP): TCPSocketConnection sock; if(sock.connect(serverName, ECHO_SERVER_PORT)<0){ //you didn't get a connection to the server: printf("- connection failed\r\n"); }else{ printf("- connected\r\n"); wait(3); while( sock.is_connected()==false) { printf("."); } // Make & Send a HTTP request: sock.send_all(http_cmd, sizeof(http_cmd)); } while(true) { int n = sock.receive_all(buffer, BUFFER_SIZE); if(n<0) { break; } else { for(int i=0; i<n; i++) printf("%c",buffer[i]); } if(sock.is_connected()==false){ sock.close(); while(true) { //led blinky myled = 1; wait(0.2); myled = 0; wait(0.2); } } } sock.close(); }