我正在进行一个项目,其中一个C应用程序从端口44044发送udp数据报,我想使用node.js v0.10.20将这些数据包简单地回显到控制台。
我使用经典的示例来建立连接:
var dgram = require('dgram');
var port = 44044;
socket = dgram.createSocket('udp4');
socket.on('message', function (msg, info){
console.log(msg.toString());
});
socket.on('listening', function(){
var address = socket.address();
console.log("listening on :" = address.address + ":" + address.port);
});
socket.bind(port);
然而,当我运行这个示例时,我的 C 应用程序会抱怨它使用于广播的端口44044已被占用。相反,如果我先启动 C 应用程序,则 Node.js 应用程序会立即返回一个错误 "Error: bind EADDRINUSE"。
现在我知道这意味着我有两个服务器正在尝试在同一个端口上提供服务。但是我不知道如何获取一个 Node 线程来侦听端口44044上的 udp 广播。阅读 Node.js 文档并没有帮助我解决这个问题。