Free Wed Editor CoffeeFreeHTML15.0

Dependencies:   WIZnetInterface mbed

Fork of WIZ_Proto_Makers_4th_Lab1 by Ricky Kwon

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetInterface.h"
00003 
00004 #define WEB_SERVER_PORT   80
00005 
00006 char HTTP[1024]={0,};
00007 char HTML[1024]={0,};     
00008                 
00009 Serial pc(USBTX, USBRX);
00010 int main (void) 
00011 {
00012     pc.printf("Wait a second...\n\r");
00013     uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x05, 0x01}; 
00014 //    const char ip_addr[] = "192.168.0.222"; 
00015 //    const char mask_addr[] = "255.255.255.0"; 
00016 //    const char gateway_addr[] = "192.168.0.1";
00017     
00018     EthernetInterface eth;
00019     eth.init(mac_addr); //Use DHCP
00020     //eth.init(mac_addr, ip_addr, mask_addr, gateway_addr); //Use Static
00021     eth.connect();
00022     pc.printf("Server IP Address is %s\n\r", eth.getIPAddress());
00023     
00024     TCPSocketServer server;
00025     server.bind(WEB_SERVER_PORT);
00026     server.listen();
00027     
00028     sprintf(HTML, "<!DOCTYPE html>\r\n"\
00029                     "<html>\n\r"\
00030                     "<body>\n\r"\
00031                     "<form action=\"1\"><input type=\"submit\" value=\"up\" /></form>\n\r"\
00032                     "<form action=\"2\"><input type=\"submit\" value=\"down\" /></form>\n\r"\
00033                     "<form action=\"3\"><input type=\"submit\" value=\"forward\" /></form>\n\r"\
00034                     "</body>\n\r"\
00035                     "</html>\n\r");  
00036     
00037     sprintf(HTTP, "HTTP/1.1 200 OK \n\r"\
00038                     "Content-Length: %d\n\r"\
00039                     "Content-Type: text/html\n\r"\
00040                     "Connection: close\n\r\n\r", strlen(HTML));
00041 
00042     while (true) 
00043     {
00044         pc.printf("Wait for new connection...\n\r");
00045         TCPSocketConnection client;
00046         server.accept(client);
00047         client.set_blocking(false, 15000); // Timeout after (1.5)s
00048         
00049         //pc.printf("Connection from: %s\n\r", client.get_address());
00050         char buffer[1024];
00051         
00052         while (true) {
00053             int n = client.receive_all(buffer, sizeof(buffer));
00054             if (n <= 0) break;
00055             buffer[n] = '\0';
00056             
00057             //pc.printf("rev_dat : %s\n\r", buffer);
00058             
00059             if((buffer[0]=='G')&&(buffer[1]=='E')&&(buffer[2]=='T')&&(buffer[3]==' '))// GET_Request
00060             { 
00061                 client.send(HTTP, strlen(HTTP));   
00062                 client.send(HTML, strlen(HTML));  
00063                 //pc.printf("send_dat : %s\n\r", send_dat);
00064             }
00065             if (n <= 0) break;
00066         }
00067         
00068         client.close();
00069     }
00070     
00071 }
00072