test

Committer:
Jecours
Date:
Sun Jul 16 11:16:35 2017 +0000
Revision:
0:b5b24252b190
testcommit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jecours 0:b5b24252b190 1 #if !FEATURE_LWIP
Jecours 0:b5b24252b190 2 #error [NOT_SUPPORTED] LWIP not supported for this target
Jecours 0:b5b24252b190 3 #endif
Jecours 0:b5b24252b190 4
Jecours 0:b5b24252b190 5 #include "mbed.h"
Jecours 0:b5b24252b190 6 #include "EthernetInterface.h"
Jecours 0:b5b24252b190 7 #include "TCPServer.h"
Jecours 0:b5b24252b190 8 #include "TCPSocket.h"
Jecours 0:b5b24252b190 9
Jecours 0:b5b24252b190 10 #define HTTP_STATUS_LINE "HTTP/1.0 200 OK"
Jecours 0:b5b24252b190 11 #define HTTP_HEADER_FIELDS "Content-Type: text/html; charset=utf-8"
Jecours 0:b5b24252b190 12 #define HTTP_MESSAGE_BODY "" \
Jecours 0:b5b24252b190 13 "<html>" "\r\n" \
Jecours 0:b5b24252b190 14 " <body style=\"display:flex;text-align:center\">" "\r\n" \
Jecours 0:b5b24252b190 15 " <div style=\"margin:auto\">" "\r\n" \
Jecours 0:b5b24252b190 16 " <h1>Hello World</h1>" "\r\n" \
Jecours 0:b5b24252b190 17 " <p>It works !</p>" "\r\n" \
Jecours 0:b5b24252b190 18 " </div>" "\r\n" \
Jecours 0:b5b24252b190 19 " </body>" "\r\n" \
Jecours 0:b5b24252b190 20 "</html>"
Jecours 0:b5b24252b190 21
Jecours 0:b5b24252b190 22 #define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n" \
Jecours 0:b5b24252b190 23 HTTP_HEADER_FIELDS "\r\n" \
Jecours 0:b5b24252b190 24 "\r\n" \
Jecours 0:b5b24252b190 25 HTTP_MESSAGE_BODY "\r\n"
Jecours 0:b5b24252b190 26
Jecours 0:b5b24252b190 27 int main()
Jecours 0:b5b24252b190 28 {
Jecours 0:b5b24252b190 29 printf("Basic HTTP server example\n");
Jecours 0:b5b24252b190 30
Jecours 0:b5b24252b190 31 EthernetInterface eth;
Jecours 0:b5b24252b190 32 eth.connect();
Jecours 0:b5b24252b190 33
Jecours 0:b5b24252b190 34 printf("The target IP address is '%s'\n", eth.get_ip_address());
Jecours 0:b5b24252b190 35
Jecours 0:b5b24252b190 36 TCPServer srv;
Jecours 0:b5b24252b190 37 TCPSocket clt_sock;
Jecours 0:b5b24252b190 38 SocketAddress clt_addr;
Jecours 0:b5b24252b190 39
Jecours 0:b5b24252b190 40 /* Open the server on ethernet stack */
Jecours 0:b5b24252b190 41 srv.open(&eth);
Jecours 0:b5b24252b190 42
Jecours 0:b5b24252b190 43 /* Bind the HTTP port (TCP 80) to the server */
Jecours 0:b5b24252b190 44 srv.bind(eth.get_ip_address(), 80);
Jecours 0:b5b24252b190 45
Jecours 0:b5b24252b190 46 /* Can handle 5 simultaneous connections */
Jecours 0:b5b24252b190 47 srv.listen(5);
Jecours 0:b5b24252b190 48
Jecours 0:b5b24252b190 49 while (true) {
Jecours 0:b5b24252b190 50 srv.accept(&clt_sock, &clt_addr);
Jecours 0:b5b24252b190 51 printf("accept %s:%d\n", clt_addr.get_ip_address(), clt_addr.get_port());
Jecours 0:b5b24252b190 52 clt_sock.send(HTTP_RESPONSE, strlen(HTTP_RESPONSE));
Jecours 0:b5b24252b190 53 }
Jecours 0:b5b24252b190 54 }