Jan Kamidra
/
UDP_Echo
UDP echo with thread
Diff: main.cpp
- Revision:
- 2:01b03970605d
- Parent:
- 1:9c712ebb90d3
- Child:
- 3:9ab431fc54e2
diff -r 9c712ebb90d3 -r 01b03970605d main.cpp --- a/main.cpp Sun May 05 16:17:26 2019 +0000 +++ b/main.cpp Wed Jul 03 05:41:00 2019 +0000 @@ -1,8 +1,16 @@ -#include "mbed.h" //MbedOS 5.12.2 +#include "mbed.h" //MbedOS 5.13 #include "EthernetInterface.h" -#define ADDRESS "10.0.1.14" //Here place IP of your PC -#define PORT 20 +#define ADDRESS "192.168.1.10" //Here place IP of your PC. Run cmd.exe and write command ipconfig +#define LOCALPORT 20 +#define REMOTEPORT 2000 + +#define ROUTER +#ifndef ROUTER + #define IP "192.168.1.1" + #define GATEWAY "0.0.0.0" + #define MASK "255.255.255.0" +#endif Thread thread; DigitalOut led1(LED1); @@ -11,17 +19,27 @@ void udpEcho(){ EthernetInterface eth; UDPSocket sock; - SocketAddress addr(0,PORT); - eth.connect(); + SocketAddress addr(0,LOCALPORT); + int eth_stat; +#ifndef ROUTER + eth.disconnect(); + eth_stat = eth.set_network(IP,MASK,GATEWAY); + printf("set IP status: %i\n",eth_stat); +#endif + eth_stat = eth.connect(); + printf("connect status: %i\n",eth_stat); const char *ip = eth.get_ip_address(); + const char *mac = eth.get_mac_address(); + printf("MAC address is: %s\n", mac ? mac : "No MAC"); + printf("IP address is: %s\n", ip ? ip : "No IP"); // Check ip - if(ip){ - printf("IP address is: %s\n", ip); + if(ip){// Check ip sock.open(ð); - sock.bind(PORT); + sock.bind(LOCALPORT); + printf("Listen on local port: %d and send to remote port %d\n", LOCALPORT, REMOTEPORT); char buffer[] = "Hello World, UDP Echo server"; printf("Sending message '%s' to server (%s)\n",buffer,ip); - sock.sendto(ADDRESS, PORT, buffer, sizeof(buffer)); + sock.sendto(ADDRESS, REMOTEPORT, buffer, sizeof(buffer)); printf("Waiting for message...\n"); while(1) { @@ -34,7 +52,8 @@ n = sprintf(out_buffer,"Echo - %s", in_buffer); out_buffer[n] = '\0'; printf("Send back: %s\n", out_buffer); - sock.sendto(addr.get_ip_address(),PORT , out_buffer, sizeof(out_buffer)); + sock.sendto(addr.get_ip_address(), REMOTEPORT, out_buffer, sizeof(out_buffer)); + printf("IP address is: %s\n", addr.get_ip_address()); led2 =! led2; } /*sock.close();