我正在尝试在node.js中通过IPv6接收多播数据报.我在IPv4(udp4)上完全相同的方式没有问题,但尝试为udp6做同样的事情让我在socket.addMembership调用时出现EINVAL错误.这是我的代码:
var dgram = require('dgram');
var server = dgram.createSocket('udp6');
var PORT = 12345;
var MULTICAST_ADDRESS = 'ff7e:230::1234';
server.on('message', function (message, remote) {
console.log('Message from: ' + remote.address + ':' + remote.port +' - ' + message);
});
server.on('listening', function () {
var address = server.address();
console.log('UDP listening on ' + address.address + ":" + address.port);
server.addMembership(MULTICAST_ADDRESS);
});
server.bind(PORT);
Run Code Online (Sandbox Code Playgroud)
这导致:
Error: addMembership EINVAL
at new errnoException (dgram.js:454:11)
at Socket.addMembership (dgram.js:396:11)
at Socket.<anonymous> (/media/sf_projects/ipv6_multicast/server.js:57:10)
at Socket.EventEmitter.emit (events.js:92:17)
at startListening (dgram.js:141:10) …Run Code Online (Sandbox Code Playgroud)