I am very much still learning this stuff Multicast UPP4 Sender Example #1
Works on Windows//================================================================== // Multicast Sender // // Based on: gist.github.com/ciaranj/9056285 // node.js doc: nodejs.org/api/dgram.html //================================================================== var ADDR = "224.1.1.1" // udp4 multicast address var news = [ "Borussia Dortmund wins German championship", "Tornado warning for the Bay Area", "More rain for the weekend", "Android tablets take over the world", "iPad2 sold out", "Nation's rappers down to last two samples" ]; // load "dgram" module const dgram = require("dgram"); // create socket console.log("create socket"); var sender = dgram.createSocket("udp4"); console.log("bind"); sender.bind(function() { console.log(" set broadcast true" ); sender.setBroadcast(true); console.log(" set multicast TTL"); sender.setMulticastTTL(0); console.log(" set broadcast interval"); setInterval(broadcastNew,3000); }); console.log("event loop"); // multicast random string from news array function broadcastNew() { var message = new Buffer(news[Math.floor(Math.random()*news.length)]); sender.send(message,0,message.length,5007,ADDR); console.log("Sent " + message + " to the wire..."); } Multicast UPP4 receiver Example #1
Works on Windows//================================================================== // Multicast Receiver // //------------------------------------------------------------------ // Notes: // 1. The message event is fired, when a UDP packet arrives destined // for this server. // 2. The listening event is fired, when the server has initialized // and all ready to receive UDP packets. //------------------------------------------------------------------ // // Base on: gist.github.com/ciaranj/9056285 // node.js doc: nodejs.org/api/dgram.html //================================================================== var PORT = 5007; // udp socket port number var ADDR = "224.1.1.1" // udp4 multicast address // load "dgram" module const dgram = require("dgram"); // create socket //------------------------------------------------------------------ // var receiver = dgram.createSocket("udp4"); <- no reuse of address //------------------------------------------------------------------ console.log("create socket"); var receiver = dgram.createSocket({ type: "udp4", reuseAddr: true }); // attach a callback to "error" events console.log("create socket error event callback"); receiver.on("error", (err) => { console.log("server error:\n${err.stack}"); //receiver.close(); }); // add a listener for "message" events console.log("create listener"); receiver.on("listening", function () { var address = receiver.address(); console.log("UDP receiver listening on " + address.address + ":" + address.port); console.log(" set broadcast true"); receiver.setBroadcast(true); console.log(" set multicast TTL"); receiver.setMulticastTTL(0); console.log(" add receiver to multicast address"); receiver.addMembership(ADDR); }); // attach a callback to a "message" events console.log("create message event callback"); receiver.on("message", function (message, remote) { console.log("A: Epic Command Received. Preparing Relay."); console.log("B: From: " + remote.address + ":" + remote.port +" - " + message); }); // bind socket to port - begin listening for datagram messages console.log("bind"); receiver.bind(PORT); console.log("event loop");