Several examples run on only mbed-os5.13.0 (not 5.14.0)

Dependencies:   BD_SD_DISCO_F769NI BSP_DISCO_F769NI LCD_DISCO_F769NI TS_DISCO_F769NI USBHost_F769NI

Committer:
kenjiArai
Date:
Mon Oct 14 08:55:15 2019 +0000
Revision:
4:0f4affc00183
Parent:
3:35ac9ee7d2d6
Several Examples

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 3:35ac9ee7d2d6 1 // Original
kenjiArai 3:35ac9ee7d2d6 2 // https://os.mbed.com/teams/ST/code/mbed-os-tcp-server-example/
kenjiArai 3:35ac9ee7d2d6 3 //
kenjiArai 3:35ac9ee7d2d6 4 // Modified by K.Arai
kenjiArai 4:0f4affc00183 5 // October 14th, 2019
kenjiArai 3:35ac9ee7d2d6 6 //
kenjiArai 3:35ac9ee7d2d6 7
kenjiArai 3:35ac9ee7d2d6 8 #include "select_program.h"
kenjiArai 3:35ac9ee7d2d6 9 //#define EXAMPLE_5_TCP_SERVER
kenjiArai 3:35ac9ee7d2d6 10 #ifdef EXAMPLE_5_TCP_SERVER
kenjiArai 3:35ac9ee7d2d6 11
kenjiArai 3:35ac9ee7d2d6 12 #if !FEATURE_LWIP
kenjiArai 3:35ac9ee7d2d6 13 #error [NOT_SUPPORTED] LWIP not supported for this target
kenjiArai 3:35ac9ee7d2d6 14 #endif
kenjiArai 3:35ac9ee7d2d6 15
kenjiArai 3:35ac9ee7d2d6 16 #include "mbed.h"
kenjiArai 3:35ac9ee7d2d6 17 #include "EthernetInterface.h"
kenjiArai 3:35ac9ee7d2d6 18 #include "TCPServer.h"
kenjiArai 3:35ac9ee7d2d6 19 #include "TCPSocket.h"
kenjiArai 3:35ac9ee7d2d6 20
kenjiArai 3:35ac9ee7d2d6 21 Serial pc(USBTX, USBRX, 115200);
kenjiArai 3:35ac9ee7d2d6 22
kenjiArai 3:35ac9ee7d2d6 23 #define HTTP_STATUS_LINE "HTTP/1.0 200 OK"
kenjiArai 3:35ac9ee7d2d6 24 #define HTTP_HEADER_FIELDS "Content-Type: text/html; charset=utf-8"
kenjiArai 3:35ac9ee7d2d6 25 #define HTTP_MESSAGE_BODY "" \
kenjiArai 3:35ac9ee7d2d6 26 "<html>" "\r\n" \
kenjiArai 3:35ac9ee7d2d6 27 " <body style=\"display:flex;text-align:center\">" "\r\n" \
kenjiArai 3:35ac9ee7d2d6 28 " <div style=\"margin:auto\">" "\r\n" \
kenjiArai 3:35ac9ee7d2d6 29 " <h1>Hello World</h1>" "\r\n" \
kenjiArai 3:35ac9ee7d2d6 30 " <p>It works !</p>" "\r\n" \
kenjiArai 3:35ac9ee7d2d6 31 " </div>" "\r\n" \
kenjiArai 3:35ac9ee7d2d6 32 " </body>" "\r\n" \
kenjiArai 3:35ac9ee7d2d6 33 "</html>"
kenjiArai 3:35ac9ee7d2d6 34
kenjiArai 3:35ac9ee7d2d6 35 #define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n" \
kenjiArai 3:35ac9ee7d2d6 36 HTTP_HEADER_FIELDS "\r\n" \
kenjiArai 3:35ac9ee7d2d6 37 "\r\n" \
kenjiArai 3:35ac9ee7d2d6 38 HTTP_MESSAGE_BODY "\r\n"
kenjiArai 3:35ac9ee7d2d6 39
kenjiArai 3:35ac9ee7d2d6 40 int main()
kenjiArai 3:35ac9ee7d2d6 41 {
kenjiArai 4:0f4affc00183 42 pc.printf("\x1b[2J\x1b[H %s\r\n %s %s (UTC)\r\n",
kenjiArai 4:0f4affc00183 43 __FILE__, __DATE__, __TIME__);
kenjiArai 4:0f4affc00183 44 printf(" Basic HTTP server example for DISCO-F769NI:\r\n");
kenjiArai 3:35ac9ee7d2d6 45
kenjiArai 3:35ac9ee7d2d6 46 EthernetInterface eth;
kenjiArai 3:35ac9ee7d2d6 47 eth.connect();
kenjiArai 3:35ac9ee7d2d6 48
kenjiArai 3:35ac9ee7d2d6 49 printf("The target IP address is '%s'\r\n", eth.get_ip_address());
kenjiArai 3:35ac9ee7d2d6 50
kenjiArai 3:35ac9ee7d2d6 51 TCPServer srv;
kenjiArai 3:35ac9ee7d2d6 52 TCPSocket clt_sock;
kenjiArai 3:35ac9ee7d2d6 53 SocketAddress clt_addr;
kenjiArai 3:35ac9ee7d2d6 54
kenjiArai 3:35ac9ee7d2d6 55 /* Open the server on ethernet stack */
kenjiArai 3:35ac9ee7d2d6 56 srv.open(&eth);
kenjiArai 3:35ac9ee7d2d6 57
kenjiArai 3:35ac9ee7d2d6 58 /* Bind the HTTP port (TCP 80) to the server */
kenjiArai 3:35ac9ee7d2d6 59 srv.bind(eth.get_ip_address(), 80);
kenjiArai 3:35ac9ee7d2d6 60
kenjiArai 3:35ac9ee7d2d6 61 /* Can handle 5 simultaneous connections */
kenjiArai 3:35ac9ee7d2d6 62 srv.listen(5);
kenjiArai 3:35ac9ee7d2d6 63
kenjiArai 3:35ac9ee7d2d6 64 while (true) {
kenjiArai 3:35ac9ee7d2d6 65 srv.accept(&clt_sock, &clt_addr);
kenjiArai 3:35ac9ee7d2d6 66 printf("accept %s:%d\r\n", clt_addr.get_ip_address(), clt_addr.get_port());
kenjiArai 3:35ac9ee7d2d6 67 clt_sock.send(HTTP_RESPONSE, strlen(HTTP_RESPONSE));
kenjiArai 3:35ac9ee7d2d6 68 }
kenjiArai 3:35ac9ee7d2d6 69 }
kenjiArai 3:35ac9ee7d2d6 70
kenjiArai 3:35ac9ee7d2d6 71 #endif