我在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,我不认为这是端口的问题。任何的想法?感谢。
答案 0 :(得分:0)
在过去,我使用unix
类型来处理这种套接字。它可以与unix_dgram
一起使用,如下所示
var server = dgram.createSocket('unix_dgram');
答案 1 :(得分:0)
您的服务器只在localhost上侦听。您需要将HOST
变量更改为其他内容,以便能够侦听来自外部世界的消息(例如,0.0.0.0
用于所有地址,或特定的IP,如192.168.1.101
)。