University of Plymouth - Stages 1, 2 and 3
/
Task670-mbedos-FZ429-TCP
Simple TCP/IP Server (static web page_
Revision 3:c62ab6a06986, committed 2019-11-15
- Comitter:
- noutram
- Date:
- Fri Nov 15 10:47:27 2019 +0000
- Parent:
- 2:31688a1ac73a
- Commit message:
- Updated for new mbed-os version
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Nov 08 14:19:22 2019 +0000 +++ b/main.cpp Fri Nov 15 10:47:27 2019 +0000 @@ -1,6 +1,9 @@ +/*#if !FEATURE_LWIP + #error [NOT_SUPPORTED] LWIP not supported for this target +#endif + */ #include "mbed.h" #include "EthernetInterface.h" -#include "TCPServer.h" #include "TCPSocket.h" #define HTTP_STATUS_LINE "HTTP/1.0 200 OK" @@ -13,48 +16,84 @@ " <p>It works !</p>" "\r\n" \ " </div>" "\r\n" \ " </body>" "\r\n" \ -"</html>" +"</html>" "\r\n" #define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n" \ HTTP_HEADER_FIELDS "\r\n" \ "\r\n" \ HTTP_MESSAGE_BODY "\r\n" +#define HTTP_TITLE "<head><title> Plymouth Uni Weather Page </title></head>" "\r\n" +#define HTTP_FORMAT_1 "<body style=\"display:flex;text-align:center\">" "\r\n" \ + "<div style=\"margin:auto\">" "\r\n" +#define HTTP_BOTTOM "</html>" "\r\n" #define IP "10.0.0.10" -#define NETMASK "255.0.0.0" +#define NETMASK "255.255.255.0" #define GATEWAY "10.0.0.1" +//const char *const myHTTP = HTTP_RESPONSE; //This if you wish to set above Compiler defines into Flash Silicon + +void ReadFlag_ISR(void); +bool ReadFlag=true; + int main() { - printf("Basic HTTP server example\n"); - - //Configure an ethernet connection + printf("\r\nBasic HTTP server example\r\n"); + + //generic error code handle + int err=0; + + // Ethernet Interface EthernetInterface eth; - eth.set_network(IP, NETMASK, GATEWAY); + eth.set_network(IP, NETMASK, GATEWAY); // comment this line out if you wish to use DHCP eth.connect(); - printf("The target IP address is '%s'\n", eth.get_ip_address()); - - //Now setup a web server - TCPSocket srv; //TCP/IP Server - TCPSocket clt_sock; //Socket for communication - SocketAddress clt_addr; //Address of incoming connection - - /* Open the server on ethernet stack */ + printf("\r\nThe target IP address is '%s'\r\n", eth.get_ip_address()); + + // Use to be :- TCPServer srv;!!! + TCPSocket srv; + TCPSocket *clt_sock; + + // Open the server on ethernet stack srv.open(ð); - - /* Bind the HTTP port (TCP 80) to the server */ - srv.bind(eth.get_ip_address(), 80); - - /* Can handle 5 simultaneous connections */ - srv.listen(5); - + + // BIND the server to the HTTP port (TCP 80) + err=srv.bind(eth.get_ip_address(), 80); + + printf("IP Address confirm at : %s\n\r",eth.get_ip_address()); + + if(err==0) { + printf("Bind OK\n\r"); + } else { + printf("Bind error=%d\n\r",err); + } + + // LISTEN Can handle 5 simultaneous connections + err=srv.listen(5); + if(err==0) { + printf("Listening OK\n\r"); + } else { + printf("Listen error=%d\n\r",err); + } + while (true) { - //Block and wait on an incoming connection - srv.accept(); - printf("accept %s:%d\n", clt_addr.get_ip_address(), clt_addr.get_port()); - - //Send static HTML response - clt_sock.send(HTTP_RESPONSE, strlen(HTTP_RESPONSE)); + // ACCEPT Accepting connections now..... + clt_sock=srv.accept(); + + printf("Waiting.....\n\r"); + + // the rest of this line to use Flash Silicon *see notes above line number 35" myHTTP,strlen(myHTTP)); + printf("%s STRING LENGTH is:%d\n\r",HTTP_RESPONSE,strlen(HTTP_RESPONSE)); + + //myHTTP,mydatasize)the rest of this line to use Flash Silicon *see notes above line number 35" myHTTP,strlen(myHTTP)); + clt_sock->send(HTTP_RESPONSE, strlen(HTTP_RESPONSE)); + if(err==0) { + printf("Sent OK!\n\r"); + } else { + printf("Send error=%d\n\r",err); + } + + clt_sock->close(); + wait_us(1000000);//Delay 1 second } }