Free Wed Editor CoffeeFreeHTML15.0
Dependencies: WIZnetInterface mbed
Fork of WIZ_Proto_Makers_4th_Lab1 by
main.cpp@3:eb6b286cf2bd, 2016-02-17 (annotated)
- Committer:
- Ricky_Kwon
- Date:
- Wed Feb 17 06:32:47 2016 +0000
- Revision:
- 3:eb6b286cf2bd
- Parent:
- 2:6a79ff33db7f
WIZ Proto Makers 4th Lab 1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ricky_Kwon | 0:722e7ff3a065 | 1 | #include "mbed.h" |
Ricky_Kwon | 0:722e7ff3a065 | 2 | #include "EthernetInterface.h" |
Ricky_Kwon | 0:722e7ff3a065 | 3 | |
Ricky_Kwon | 0:722e7ff3a065 | 4 | #define WEB_SERVER_PORT 80 |
Ricky_Kwon | 0:722e7ff3a065 | 5 | |
Ricky_Kwon | 3:eb6b286cf2bd | 6 | char HTTP[1024]={0,}; |
Ricky_Kwon | 3:eb6b286cf2bd | 7 | char HTML[1024]={0,}; |
Ricky_Kwon | 3:eb6b286cf2bd | 8 | |
Ricky_Kwon | 3:eb6b286cf2bd | 9 | Serial pc(USBTX, USBRX); |
Ricky_Kwon | 0:722e7ff3a065 | 10 | int main (void) |
Ricky_Kwon | 0:722e7ff3a065 | 11 | { |
Ricky_Kwon | 3:eb6b286cf2bd | 12 | pc.printf("Wait a second...\n\r"); |
Ricky_Kwon | 3:eb6b286cf2bd | 13 | uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x05, 0x01}; |
Ricky_Kwon | 3:eb6b286cf2bd | 14 | // const char ip_addr[] = "192.168.0.222"; |
Ricky_Kwon | 3:eb6b286cf2bd | 15 | // const char mask_addr[] = "255.255.255.0"; |
Ricky_Kwon | 3:eb6b286cf2bd | 16 | // const char gateway_addr[] = "192.168.0.1"; |
Ricky_Kwon | 0:722e7ff3a065 | 17 | |
Ricky_Kwon | 0:722e7ff3a065 | 18 | EthernetInterface eth; |
Ricky_Kwon | 3:eb6b286cf2bd | 19 | eth.init(mac_addr); //Use DHCP |
Ricky_Kwon | 3:eb6b286cf2bd | 20 | //eth.init(mac_addr, ip_addr, mask_addr, gateway_addr); //Use Static |
Ricky_Kwon | 0:722e7ff3a065 | 21 | eth.connect(); |
Ricky_Kwon | 3:eb6b286cf2bd | 22 | pc.printf("Server IP Address is %s\n\r", eth.getIPAddress()); |
Ricky_Kwon | 0:722e7ff3a065 | 23 | |
Ricky_Kwon | 0:722e7ff3a065 | 24 | TCPSocketServer server; |
Ricky_Kwon | 0:722e7ff3a065 | 25 | server.bind(WEB_SERVER_PORT); |
Ricky_Kwon | 0:722e7ff3a065 | 26 | server.listen(); |
Ricky_Kwon | 3:eb6b286cf2bd | 27 | |
Ricky_Kwon | 3:eb6b286cf2bd | 28 | sprintf(HTML, "<!DOCTYPE html>\r\n"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 29 | "<html>\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 30 | "<body>\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 31 | "<form action=\"1\"><input type=\"submit\" value=\"up\" /></form>\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 32 | "<form action=\"2\"><input type=\"submit\" value=\"down\" /></form>\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 33 | "<form action=\"3\"><input type=\"submit\" value=\"forward\" /></form>\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 34 | "</body>\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 35 | "</html>\n\r"); |
Ricky_Kwon | 3:eb6b286cf2bd | 36 | |
Ricky_Kwon | 3:eb6b286cf2bd | 37 | sprintf(HTTP, "HTTP/1.1 200 OK \n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 38 | "Content-Length: %d\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 39 | "Content-Type: text/html\n\r"\ |
Ricky_Kwon | 3:eb6b286cf2bd | 40 | "Connection: close\n\r\n\r", strlen(HTML)); |
Ricky_Kwon | 0:722e7ff3a065 | 41 | |
Ricky_Kwon | 0:722e7ff3a065 | 42 | while (true) |
Ricky_Kwon | 0:722e7ff3a065 | 43 | { |
Ricky_Kwon | 3:eb6b286cf2bd | 44 | pc.printf("Wait for new connection...\n\r"); |
Ricky_Kwon | 0:722e7ff3a065 | 45 | TCPSocketConnection client; |
Ricky_Kwon | 0:722e7ff3a065 | 46 | server.accept(client); |
Ricky_Kwon | 0:722e7ff3a065 | 47 | client.set_blocking(false, 15000); // Timeout after (1.5)s |
Ricky_Kwon | 0:722e7ff3a065 | 48 | |
Ricky_Kwon | 3:eb6b286cf2bd | 49 | //pc.printf("Connection from: %s\n\r", client.get_address()); |
Ricky_Kwon | 3:eb6b286cf2bd | 50 | char buffer[1024]; |
Ricky_Kwon | 0:722e7ff3a065 | 51 | |
Ricky_Kwon | 0:722e7ff3a065 | 52 | while (true) { |
Ricky_Kwon | 0:722e7ff3a065 | 53 | int n = client.receive_all(buffer, sizeof(buffer)); |
Ricky_Kwon | 0:722e7ff3a065 | 54 | if (n <= 0) break; |
Ricky_Kwon | 3:eb6b286cf2bd | 55 | buffer[n] = '\0'; |
Ricky_Kwon | 0:722e7ff3a065 | 56 | |
Ricky_Kwon | 3:eb6b286cf2bd | 57 | //pc.printf("rev_dat : %s\n\r", buffer); |
Ricky_Kwon | 2:6a79ff33db7f | 58 | |
Ricky_Kwon | 2:6a79ff33db7f | 59 | if((buffer[0]=='G')&&(buffer[1]=='E')&&(buffer[2]=='T')&&(buffer[3]==' '))// GET_Request |
Ricky_Kwon | 2:6a79ff33db7f | 60 | { |
Ricky_Kwon | 3:eb6b286cf2bd | 61 | client.send(HTTP, strlen(HTTP)); |
Ricky_Kwon | 3:eb6b286cf2bd | 62 | client.send(HTML, strlen(HTML)); |
Ricky_Kwon | 3:eb6b286cf2bd | 63 | //pc.printf("send_dat : %s\n\r", send_dat); |
Ricky_Kwon | 2:6a79ff33db7f | 64 | } |
Ricky_Kwon | 3:eb6b286cf2bd | 65 | if (n <= 0) break; |
Ricky_Kwon | 0:722e7ff3a065 | 66 | } |
Ricky_Kwon | 0:722e7ff3a065 | 67 | |
Ricky_Kwon | 0:722e7ff3a065 | 68 | client.close(); |
Ricky_Kwon | 0:722e7ff3a065 | 69 | } |
Ricky_Kwon | 0:722e7ff3a065 | 70 | |
Ricky_Kwon | 0:722e7ff3a065 | 71 | } |
Ricky_Kwon | 0:722e7ff3a065 | 72 |