UDP Seerver LCinet
Dependencies: SDFileSystem WIZnetInterface mbed
Fork of UDPEchoServer by
Diff: main.cpp
- Revision:
- 7:345b078c448a
- Parent:
- 6:bd7f46b6fa23
- Child:
- 8:47e9d7df0582
--- a/main.cpp Tue May 05 20:08:42 2015 +0000 +++ b/main.cpp Fri Aug 21 02:25:23 2015 +0000 @@ -1,27 +1,80 @@ #include "mbed.h" #include "EthernetInterface.h" +#include "SDFileSystem.h" -#define ECHO_SERVER_PORT 7 + +//#define UDPServer 1 +#define UDPClinet 1 + +#if defined(UDPServer) + #define MAC "\x00\x08\xDC\x11\x34\x78" + #define IP "192.168.99.100" + #define MASK "255.255.255.0" + #define GATEWAY "192.168.99.1" +#endif +#if defined(UDPClinet) + #define MAC "\x00\x08\xDC\x11\x34\x90" + #define IP "192.168.99.101" + #define MASK "255.255.255.0" + #define GATEWAY "192.168.99.1" +#endif +const char* ECHO_SERVER_ADDRESS = "192.168.99.100"; +const int ECHO_SERVER_PORT = 7; int main (void) { + EthernetInterface eth; - eth.init(); //Use DHCP + Serial (USBTX, USBRX); + printf("g\n"); + eth.init((uint8_t*)MAC,IP,MASK,GATEWAY); //IP,mask,Gateway + printf("Connecting\n"); eth.connect(); - printf("\nServer IP Address is %s\n", eth.getIPAddress()); - - UDPSocket server; - server.bind(ECHO_SERVER_PORT); +#if defined(UDPServer) + while (true) + { + printf("\nServer IP Address is %s\n", eth.getIPAddress()); + UDPSocket server; + server.bind(ECHO_SERVER_PORT); - Endpoint client; - char buffer[256]; - while (true) { - printf("\nWaiting for UDP packet...\n"); - int n = server.receiveFrom(client, buffer, sizeof(buffer)); - buffer[n] = '\0'; - - printf("Received packet from: %s\n", client.get_address()); - printf("Packet contents : '%s'\n",buffer); - printf("Sending Packet back to Client\n"); - server.sendTo(client, buffer, n); + Endpoint client; + char buffer[256]; + while (true) { + printf("\nWaiting for UDP packet...\n"); + int n = server.receiveFrom(client, buffer, sizeof(buffer)); + if (n <= 0) break; + // print received message to terminal + //buffer[n] = '\0'; + + printf("Received packet from: %s\n", client.get_address()); + printf("Packet contents : '%s'\n",buffer); + printf("Sending Packet back to Client\n"); + server.sendTo(client, buffer, n); + if (n <= 0) break; + } } +#else //Client + printf("\nClient IP Address is %s \n", eth.getIPAddress()); + + UDPSocket sock; + sock.init(); + + Endpoint echo_server; + echo_server.set_address(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); + + char out_buffer[] = "Hello World"; + printf("Sending message '%s' to server (%s)\n",out_buffer,ECHO_SERVER_ADDRESS); + sock.sendTo(echo_server, out_buffer, sizeof(out_buffer)); + + char in_buffer[256]; + int n = sock.receiveFrom(echo_server, in_buffer, sizeof(in_buffer)); + + in_buffer[n] = '\0'; + printf("Received message from server: '%s'\n", in_buffer); + + sock.close(); + + eth.disconnect(); + while(1) {} +#endif } +