DNS, DHCPClient, Http Client, TCP Client, GET

Dependencies:   WIZnetInterface mbed

Committer:
embeddist
Date:
Mon Jul 06 05:14:41 2015 +0000
Revision:
0:7d9fbdfdd41a
DNS Web Client

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embeddist 0:7d9fbdfdd41a 1 #include "mbed.h"
embeddist 0:7d9fbdfdd41a 2 #include "EthernetInterface.h"
embeddist 0:7d9fbdfdd41a 3
embeddist 0:7d9fbdfdd41a 4 #define ECHO_SERVER_PORT 80 // HTTP defaults to port 80
embeddist 0:7d9fbdfdd41a 5 char serverName[] = "openweathermap.org";
embeddist 0:7d9fbdfdd41a 6 #define BUFFER_SIZE 2048
embeddist 0:7d9fbdfdd41a 7
embeddist 0:7d9fbdfdd41a 8 DigitalOut myled(LED1);
embeddist 0:7d9fbdfdd41a 9
embeddist 0:7d9fbdfdd41a 10 // Initialize the Ethernet client library
embeddist 0:7d9fbdfdd41a 11 EthernetInterface eth;
embeddist 0:7d9fbdfdd41a 12
embeddist 0:7d9fbdfdd41a 13 int main() {
embeddist 0:7d9fbdfdd41a 14 char http_cmd[]= "GET / HTTP/1.0\r\n\r\n";
embeddist 0:7d9fbdfdd41a 15 char buffer[BUFFER_SIZE];
embeddist 0:7d9fbdfdd41a 16
embeddist 0:7d9fbdfdd41a 17 // Enter a MAC address for your controller below.
embeddist 0:7d9fbdfdd41a 18 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x1D, 0x62, 0x11};
embeddist 0:7d9fbdfdd41a 19
embeddist 0:7d9fbdfdd41a 20 // initializing MAC address
embeddist 0:7d9fbdfdd41a 21 eth.init(mac_addr);
embeddist 0:7d9fbdfdd41a 22
embeddist 0:7d9fbdfdd41a 23 // Check Ethenret Link
embeddist 0:7d9fbdfdd41a 24 if(eth.link() == true)
embeddist 0:7d9fbdfdd41a 25 printf("- Ethernet PHY Link-Done \r\n");
embeddist 0:7d9fbdfdd41a 26 else
embeddist 0:7d9fbdfdd41a 27 printf("- Ethernet PHY Link- Fail\r\n");
embeddist 0:7d9fbdfdd41a 28
embeddist 0:7d9fbdfdd41a 29 // Start Ethernet connecting: Trying to get an IP address using DHCP
embeddist 0:7d9fbdfdd41a 30 if ( eth.connect() < 0 ){
embeddist 0:7d9fbdfdd41a 31 printf("Fail - Ethernet Connecing");
embeddist 0:7d9fbdfdd41a 32 }else{
embeddist 0:7d9fbdfdd41a 33 // Print your local IP address:
embeddist 0:7d9fbdfdd41a 34 printf("IP=%s\n\r",eth.getIPAddress());
embeddist 0:7d9fbdfdd41a 35 printf("MASK=%s\n\r",eth.getNetworkMask());
embeddist 0:7d9fbdfdd41a 36 printf("GW=%s\n\r",eth.getGateway());
embeddist 0:7d9fbdfdd41a 37 }
embeddist 0:7d9fbdfdd41a 38
embeddist 0:7d9fbdfdd41a 39 // Initialize the TCPSocketConnection
embeddist 0:7d9fbdfdd41a 40 // with the IP address and port of the server
embeddist 0:7d9fbdfdd41a 41 // that you want to connect to (port 80 is default for HTTP):
embeddist 0:7d9fbdfdd41a 42 TCPSocketConnection sock;
embeddist 0:7d9fbdfdd41a 43 if(sock.connect(serverName, ECHO_SERVER_PORT)<0){
embeddist 0:7d9fbdfdd41a 44 //you didn't get a connection to the server:
embeddist 0:7d9fbdfdd41a 45 printf("- connection failed\r\n");
embeddist 0:7d9fbdfdd41a 46 }else{
embeddist 0:7d9fbdfdd41a 47 printf("- connected\r\n");
embeddist 0:7d9fbdfdd41a 48 wait(3);
embeddist 0:7d9fbdfdd41a 49 while( sock.is_connected()==false)
embeddist 0:7d9fbdfdd41a 50 {
embeddist 0:7d9fbdfdd41a 51 printf(".");
embeddist 0:7d9fbdfdd41a 52 }
embeddist 0:7d9fbdfdd41a 53 // Make & Send a HTTP request:
embeddist 0:7d9fbdfdd41a 54 sock.send_all(http_cmd, sizeof(http_cmd));
embeddist 0:7d9fbdfdd41a 55 }
embeddist 0:7d9fbdfdd41a 56
embeddist 0:7d9fbdfdd41a 57 while(true) {
embeddist 0:7d9fbdfdd41a 58
embeddist 0:7d9fbdfdd41a 59 int n = sock.receive_all(buffer, BUFFER_SIZE);
embeddist 0:7d9fbdfdd41a 60 if(n<0)
embeddist 0:7d9fbdfdd41a 61 {
embeddist 0:7d9fbdfdd41a 62 break;
embeddist 0:7d9fbdfdd41a 63 }
embeddist 0:7d9fbdfdd41a 64 else
embeddist 0:7d9fbdfdd41a 65 {
embeddist 0:7d9fbdfdd41a 66 for(int i=0; i<n; i++) printf("%c",buffer[i]);
embeddist 0:7d9fbdfdd41a 67 }
embeddist 0:7d9fbdfdd41a 68
embeddist 0:7d9fbdfdd41a 69 if(sock.is_connected()==false){
embeddist 0:7d9fbdfdd41a 70 sock.close();
embeddist 0:7d9fbdfdd41a 71 while(true)
embeddist 0:7d9fbdfdd41a 72 {
embeddist 0:7d9fbdfdd41a 73 //led blinky
embeddist 0:7d9fbdfdd41a 74 myled = 1;
embeddist 0:7d9fbdfdd41a 75 wait(0.2);
embeddist 0:7d9fbdfdd41a 76 myled = 0;
embeddist 0:7d9fbdfdd41a 77 wait(0.2);
embeddist 0:7d9fbdfdd41a 78 }
embeddist 0:7d9fbdfdd41a 79 }
embeddist 0:7d9fbdfdd41a 80 }
embeddist 0:7d9fbdfdd41a 81 sock.close();
embeddist 0:7d9fbdfdd41a 82 }