【发布时间】:2014-01-09 20:06:55
【问题描述】:
我正在尝试在 node.js 中编写一个应用程序来向设备(具有 udp 服务器)发送 udp 请求,然后接收响应并显示它。该设备的行为方式是,在其端口 11220 上收到请求后,它会立即返回响应。
下面的代码向设备发送 udp 请求,设备立即响应(我可以在 wireshark 中看到),但我无法处理/显示恢复的消息。或者至少我只是希望能够在收到设备回复后显示一条消息。请让我知道我的代码中缺少什么或向我展示一个完整的代码来完成它。非常感谢。
同样,我不喜欢使用 socket.io 等。
var PORT = 11220 ;
var HOST = '192.168.1.111';
var dgram = require('dgram');
var message = new Buffer(9);
var client = dgram.createSocket('udp4');
client.send(message, 0, message.length, PORT, HOST, function(err, bytes) {
if (err) throw err;
console.log('UDP message sent to ' + HOST +':'+ PORT);
client.close();
});
client.on('listening', function () {
var address = server.address();
console.log('UDP Server listening on ' + address.address + ":" + address.port);
});
client.on('message', function (message, remote) {
// CAN I HANDLE THE RECIVED REPLY HERE????
console.log(remote.address + ':' + remote.port +' - ' + message);
});
【问题讨论】:
-
所以你的
message处理程序永远不会运行?listening是否运行?如果您send仅在添加事件处理程序之后会发生什么。
标签: node.js sockets tcp udp client-server