IP multicasting is used to target a group of hosts by sending a single datagram. IP addresses in the range 224.0.0.0 through 239.255.255.255 are reserved for multicasting.
To find out which hosts on your subnet support multicasting, try
ping 224.0.0.1
Here’s a Node.js code snippet that sends UDP datagrams to multicast group 225.0.0.1 at port 8001
var dgram = require('dgram'); var s = dgram.createSocket('udp4'); s.bind(8000); var b = new Buffer("Hello"); s.send(b, 0, b.length, 8001, "225.0.0.1", function(err, bytes) { console.log("Sent " + bytes + " bytes"); s.close(); });
A host that desires to receive a datagram sent to a multicast group, must first request membership to that group. Here’s a Node.js code snippet that receives datagram sent by the code above
var dgram = require('dgram'); var s = dgram.createSocket('udp4'); s.bind(8001, function() { s.addMembership('225.0.0.1'); }); s.on("message", function (msg, rinfo) { console.log("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port); });
.NET code that does something similar can be found in the UDP Tool at GitHUb.
Receiving multicasts on Linux does not work when you bind the socket to a specific interface, for instance s.bind(8001, 192.168.1.1… does not work. It looks like a Linux-only quirk because it happens with both the Mono .NET runtime and Node.js.
Another quirk observed on Linux is the need to add a route to forward multicast IP packets to a wireless LAN interface that is used in access point mode, in tandem with hostapd e.g.
route add -net 225.0.0.0 netmask 255.0.0.0 gw 192.168.1.1
Filed under: .NET, JavaScript, Network Image may be NSFW.
Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.

Clik here to view.
