我正在学习Node.js,我正在udp上做一些示例代码。我正在尝试实现一个udp服务器来监听多播消息,我的基本代码就是这个
var server = require('dgram').createSocket('udp4');
server.on('message', function(message, rinfo) {
console.log('server got message: ' + message + ' from ' + rinfo.address +
':' + rinfo.port);
});
server.bind(4000);
server.addMembership('230.1.2.3');
但是节点给了我一个错误,
events.js:72
throw er; // Unhandled 'error' event
Error: bind EINVAL
at errnoException (dgram.js:440:11)
at dgram.js:207:28
at dns.js:72:18
at process._tickCallback (node.js:415:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
at node.js:901:3
我也在使用Windows 7。请帮助...
答案 0 :(得分:4)
尝试
var server = require('dgram').createSocket('udp4');
server.on('message', function(message, rinfo) {
console.log('server got message: ' + message + ' from ' + rinfo.address +
':' + rinfo.port);
});
server.bind(4000,function(){
server.addMembership('230.1.2.3');
});
第二个想到这个错误可能是由于几个原因造成的,比如套接字忙,套接字关闭,端口正在被其他进程使用等等。所以也检查一下。
在一些googleing之后找到了一个引用:https://github.com/joyent/node/issues/4944