Connecting multiple microcontollers with with UDPSockets

Thank you so much! That worked. I am also receiving the message on the other NUCLEO with

#include “mbed.h”

#include “EthernetInterface.h”

DigitalOut led1(LED1);

DigitalOut led2(LED2);

// Static IP network variables

//static const char* mbedIP = “192.168.1.45”; //IP

static const char* mbedIP = “192.168.1.212”; //IP

static const char* mbedMask = “255.255.255.0”; // Mask

static const char* mbedGateway = “192.168.1.254”; //Gateway

static const char* recvIP = “192.168.1.38”;

const int PORT = 80; //Port used for UDP communication

EthernetInterface eth; //Ethernet interface

int main()

{

int code;

eth.set_network(recvIP, mbedMask, mbedGateway);

printf("UDP Socket example\n");

//SocketAddress sockAddr(recvIP, NSAPI_IPv4, PORT); // wrong

SocketAddress sockAddr;

SocketAddress remoteSockAddr(mbedIP, PORT);

if (eth.connect() != 0) {

    printf("Unable to connect to the Ethernet.\r\n");

    return -1;

}

eth.get_ip_address(&sockAddr);

printf("IP address is: %s\n", sockAddr.get_ip_address() ? sockAddr.get_ip_address() : "No IP");

UDPSocket td_sock;

td_sock.open(&eth);

code = td_sock.bind(PORT);

printf("%d\r\n",code);

//code = td_sock.getpeername(&sockAddr);

td_sock.set_timeout(3000);



while (true) { 

    char in_buff[25];

    code = td_sock.recvfrom(&remoteSockAddr, &in_buff, sizeof(in_buff));

    //code = td_sock.recv(&in_buff, sizeof(in_buff));

    printf("%d\r\n",code);

    printf("%u, %u, %u,\r\n",in_buff[0],in_buff[1], in_buff[2]);

    led2 = !led2;

    //ThisThread::sleep_for(500ms);

}

}