node.js给出错误:绑定EINVAL

时间:2013-09-11 05:35:45

标签: node.js

我正在学习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。请帮助...

1 个答案:

答案 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