SimpleSocket 1.0 examples

Dependencies:   EthernetNetIf SimpleSocket 1.0 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers webserver.cpp Source File

webserver.cpp

00001 #include "EthernetNetIf.h"
00002 #include "SimpleSocket.h"
00003 
00004 void webserver() {
00005     const char *response0 =
00006         "HTTP/1.1 200 OK\r\n"
00007         "Content-Type: text/html\r\n"
00008         "\r\n"
00009         "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"5\">\r\n"
00010         "<html>\r\n"
00011         "<head>\r\n"
00012         "<title>mbed web server</title>\r\n"
00013         "</head>\r\n"
00014         "<body>\r\n"
00015         "<h2>Analog Input</h2>\r\n"
00016         "<table cellpadding=\"5\">\r\n";
00017     const char *response1 =
00018         "<tr style=\"background:#ccccff\">"
00019         "<th>pin</th><th>value</th>"
00020         "</tr>\r\n";
00021     const char *response2 =
00022         "<tr style=\"background:#cccccc\">"
00023         "<td>p%d</td><td align=\"center\">%f</td>"
00024         "</tr>\r\n";
00025     const char *response3 =
00026         "</table>\r\n"
00027         "</body>\r\n"
00028         "</html>\r\n";
00029 
00030     EthernetNetIf eth;
00031     eth.setup();
00032 
00033     ServerSocket server(80);
00034 
00035     while (true) {
00036         ClientSocket socket = server.accept();
00037         while (socket) {
00038             if (socket.available()) {
00039                 while (socket.available())
00040                     socket.read();
00041                 socket.printf(response0);
00042                 socket.printf(response1);
00043                 AnalogIn analogPin[] = {p15, p16, p17, p18, p19, p20};
00044                 for (int i = 0; i < 6; i++)
00045                     socket.printf(response2, 15 + i, analogPin[i].read());
00046                 socket.printf(response3);
00047                 socket.close();
00048             }
00049         }
00050     }
00051 }