HofSpannung / Mbed 2 deprecated UDP_Server_WORKING

Dependencies:   mbed

Fork of UDP_V1_0 by HofSpannung

Committer:
Martin1997
Date:
Wed Jun 27 09:56:10 2018 +0000
Revision:
1:be0485e31b72
Parent:
0:acad836c53e8
Working Code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jdeitert 0:acad836c53e8 1 #if !FEATURE_LWIP
jdeitert 0:acad836c53e8 2 #error [NOT_SUPPORTED] LWIP not supported for this target
jdeitert 0:acad836c53e8 3 #endif
jdeitert 0:acad836c53e8 4
jdeitert 0:acad836c53e8 5 #include "mbed.h"
jdeitert 0:acad836c53e8 6 #include "EthernetInterface.h"
jdeitert 0:acad836c53e8 7 //#include "TCPServer.h"
jdeitert 0:acad836c53e8 8 //#include "TCPSocket.h"
jdeitert 0:acad836c53e8 9
jdeitert 0:acad836c53e8 10 #define HTTP_STATUS_LINE "HTTP/1.0 200 OK"
jdeitert 0:acad836c53e8 11 #define HTTP_HEADER_FIELDS "Content-Type: text/html; charset=utf-8"
jdeitert 0:acad836c53e8 12 #define HTTP_MESSAGE_BODY "" \
jdeitert 0:acad836c53e8 13 "<html>" "\r\n" \
jdeitert 0:acad836c53e8 14 " <body style=\"display:flex;text-align:center\">" "\r\n" \
jdeitert 0:acad836c53e8 15 " <div style=\"margin:auto\">" "\r\n" \
jdeitert 0:acad836c53e8 16 " <h1>Hello World</h1>" "\r\n" \
jdeitert 0:acad836c53e8 17 " <p>It works !</p>" "\r\n" \
jdeitert 0:acad836c53e8 18 " </div>" "\r\n" \
jdeitert 0:acad836c53e8 19 " </body>" "\r\n" \
jdeitert 0:acad836c53e8 20 "</html>"
jdeitert 0:acad836c53e8 21
jdeitert 0:acad836c53e8 22 #define HTTP_RESPONSE HTTP_STATUS_LINE "\r\n" \
jdeitert 0:acad836c53e8 23 HTTP_HEADER_FIELDS "\r\n" \
jdeitert 0:acad836c53e8 24 "\r\n" \
jdeitert 0:acad836c53e8 25 HTTP_MESSAGE_BODY "\r\n"
jdeitert 0:acad836c53e8 26
Martin1997 1:be0485e31b72 27 //EDIT Martin Zeitler
Martin1997 1:be0485e31b72 28 //Definieren der Netzwerkparameter
Martin1997 1:be0485e31b72 29
Martin1997 1:be0485e31b72 30 #define IPADDRESS "192.168.0.109"
Martin1997 1:be0485e31b72 31 #define NETMASK "255.255.255.0"
Martin1997 1:be0485e31b72 32 #define GATEWAY "192.168.0.1"
Martin1997 1:be0485e31b72 33 #define PORT_RECEIVE 2223
Martin1997 1:be0485e31b72 34
Martin1997 1:be0485e31b72 35 //EDIT END
Martin1997 1:be0485e31b72 36
jdeitert 0:acad836c53e8 37 int main()
jdeitert 0:acad836c53e8 38 {
jdeitert 0:acad836c53e8 39 printf("Basic HTTP server example\n");
jdeitert 0:acad836c53e8 40
jdeitert 0:acad836c53e8 41 EthernetInterface eth;
Martin1997 1:be0485e31b72 42 eth.set_network(IPADDRESS,NETMASK,GATEWAY);
jdeitert 0:acad836c53e8 43 eth.connect();
jdeitert 0:acad836c53e8 44
Martin1997 1:be0485e31b72 45
Martin1997 1:be0485e31b72 46
jdeitert 0:acad836c53e8 47 printf("The target IP address is '%s'\r\n", eth.get_ip_address());
jdeitert 0:acad836c53e8 48
jdeitert 0:acad836c53e8 49 UDPSocket socket;
jdeitert 0:acad836c53e8 50
jdeitert 0:acad836c53e8 51 if(socket.open(&eth)!=0)
jdeitert 0:acad836c53e8 52 {
jdeitert 0:acad836c53e8 53 printf("Opening failed\r\n");
jdeitert 0:acad836c53e8 54 while(1);
jdeitert 0:acad836c53e8 55 }
jdeitert 0:acad836c53e8 56
Martin1997 1:be0485e31b72 57
Martin1997 1:be0485e31b72 58 //EDIT
Martin1997 1:be0485e31b72 59 //if(socket.bind(2223)!=0)
Martin1997 1:be0485e31b72 60 if(socket.bind(PORT_RECEIVE)!=0)
jdeitert 0:acad836c53e8 61 {
jdeitert 0:acad836c53e8 62 printf("Binding failed\r\n");
jdeitert 0:acad836c53e8 63 while(1);
Martin1997 1:be0485e31b72 64 }
Martin1997 1:be0485e31b72 65 else
Martin1997 1:be0485e31b72 66 {
Martin1997 1:be0485e31b72 67 printf("Binding service on Port '%d' \n", PORT_RECEIVE);
jdeitert 0:acad836c53e8 68 }
Martin1997 1:be0485e31b72 69 //EDIT END
Martin1997 1:be0485e31b72 70
Martin1997 1:be0485e31b72 71
jdeitert 0:acad836c53e8 72 char buf[256];
jdeitert 0:acad836c53e8 73 SocketAddress sender;
Martin1997 1:be0485e31b72 74
Martin1997 1:be0485e31b72 75 while (true)
Martin1997 1:be0485e31b72 76 {
jdeitert 0:acad836c53e8 77 int recBytes = socket.recvfrom(&sender,buf,256);
jdeitert 0:acad836c53e8 78 printf("Received packet. Size: %d\r\n",recBytes);
jdeitert 0:acad836c53e8 79 if(recBytes)
jdeitert 0:acad836c53e8 80 {
jdeitert 0:acad836c53e8 81 socket.sendto(sender,buf,recBytes);
jdeitert 0:acad836c53e8 82 printf("Sent echo\r\n");
jdeitert 0:acad836c53e8 83 }
jdeitert 0:acad836c53e8 84
jdeitert 0:acad836c53e8 85 }
jdeitert 0:acad836c53e8 86 }