Example reception of multicast messages (broken)

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of MulticastReceive by Emilio Monti

Legacy Warning

This is an mbed 2 example. To learn more about mbed OS 5, visit the docs.

Committer:
Kojto
Date:
Wed May 14 15:42:32 2014 +0000
Revision:
1:f3060367c0f9
Parent:
0:c30ede6e9b30
Update to the latest revisions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emilmont 0:c30ede6e9b30 1 #include "mbed.h"
emilmont 0:c30ede6e9b30 2 #include "EthernetInterface.h"
emilmont 0:c30ede6e9b30 3
emilmont 0:c30ede6e9b30 4 const char* MCAST_GRP = "224.1.1.1";
emilmont 0:c30ede6e9b30 5 const int MCAST_PORT = 5007;
emilmont 0:c30ede6e9b30 6
emilmont 0:c30ede6e9b30 7 int main() {
emilmont 0:c30ede6e9b30 8 EthernetInterface eth;
emilmont 0:c30ede6e9b30 9 eth.init(); //Use DHCP
emilmont 0:c30ede6e9b30 10 eth.connect();
emilmont 0:c30ede6e9b30 11
emilmont 0:c30ede6e9b30 12 UDPSocket server;
emilmont 0:c30ede6e9b30 13 server.bind(MCAST_PORT);
emilmont 0:c30ede6e9b30 14 if (server.join_multicast_group(MCAST_GRP) != 0) {
emilmont 0:c30ede6e9b30 15 printf("Error joining the multicast group\n");
emilmont 0:c30ede6e9b30 16 while (true) {}
emilmont 0:c30ede6e9b30 17 }
emilmont 0:c30ede6e9b30 18
emilmont 0:c30ede6e9b30 19 Endpoint client;
emilmont 0:c30ede6e9b30 20 char buffer[256];
emilmont 0:c30ede6e9b30 21 while (true) {
emilmont 0:c30ede6e9b30 22 printf("\nWait for packet...\n");
emilmont 0:c30ede6e9b30 23 int n = server.receiveFrom(client, buffer, sizeof(buffer));
emilmont 0:c30ede6e9b30 24
emilmont 0:c30ede6e9b30 25 printf("Packet from \"%s\": %s\n", client.get_address(), buffer);
emilmont 0:c30ede6e9b30 26 }
emilmont 0:c30ede6e9b30 27 }