【发布时间】:2017-09-03 18:14:11
【问题描述】:
我有一些 NodeJS 代码用于侦听为 UPNP 发送的广播消息。一个代码 sn-p 在端口 1900 上侦听,另一位代码使用 dgram 用于端口 1900 上的 UDP。这两个代码都没有返回任何消息。我使用实用程序验证了网络上正在广播流量。我不会同时运行两段代码,这样可以避免任何端口问题。使用 netstat -a 我可以在代码运行时看到正在使用的端口。
为什么我没有收到这些 UPNP 消息?
//DServer for UDP
/*dserver = dgram.createSocket('udp4');
dserver.bind('1900', () => {
console.log('Listening on address:' + dserver.address());
});
dserver.on('error', (err) => {
console.log('UDP Server ERROR:' + err);
dserver.close();
});
dserver.on('close', () => {
console.log('UDP Server closed');
});
dserver.on('listening', () => {
console.log('UDP Server listening');
});
dserver.on('message', (msg, rinfo) => {
console.log(msg + '\n' + rinfo);
});*/
//TCP Server ( for testing )
let dserver = net.createServer((socket) => {
socket.on('data', (data) => {
console.log("DATA:" + data.toString());
}).on('error', (err) => {
console.trace('DServer socket.on: error');
console.error(err.stack);
});
}).on('listening', () => {
console.log('DServer Listening');
}).on('connection', () => {
console.log('DServer got a connection');
}).on('close', () => {
//stays open if client closes conx
console.log('DServer Closed');
}).on('error', (err) => {
console.trace('DServer.on: error');
console.error(err.stack);
});
dserver.listen({ port: 1900 }, () => {
console.log('DServer Started Listening');
});
【问题讨论】: