Node.js远程UDP服务器不接收消息

时间:2014-05-09 02:25:12

标签: node.js udp

我在Node.js中遇到UDP服务器的基本问题,我已经使用了这个小例子:

// Remote server

var PORT = 3030;
var HOST = '127.0.0.1'

var dgram = require('dgram');
var server = dgram.createSocket('udp4');

server.on('listening', function () {
    var address = server.address();
    console.log('UDP Server listening on ' + address.address + ":" + address.port);
});

server.on('message', function (message, remote) {
    console.log('Message received')
})

server.bind(PORT, HOST);

当我尝试从计算机发送消息时,服务器没有响应:

$ echo "test" | nc -u <server_ip> 3030

但是,当我尝试从服务器本身发送消息时,消息到达。

$ Message received

服务器有静态IP,我不认为这是端口的问题。任何的想法?感谢。

2 个答案:

答案 0 :(得分:0)

在过去,我使用unix类型来处理这种套接字。它可以与unix_dgram一起使用,如下所示

var server = dgram.createSocket('unix_dgram');

答案 1 :(得分:0)

您的服务器只在localhost上侦听。您需要将HOST变量更改为其他内容,以便能够侦听来自外部世界的消息(例如,0.0.0.0用于所有地址,或特定的IP,如192.168.1.101)。

编辑:我假设中间没有路由器。