Javascript UDP接收器在延迟后触发函数?
我正在编写一些简单的本地机器搜索程序。我要做的是发送UDP广播消息,然后等待机器返回消息 发送方:Javascript UDP接收器在延迟后触发函数?,javascript,json,node.js,sockets,udp,Javascript,Json,Node.js,Sockets,Udp,我正在编写一些简单的本地机器搜索程序。我要做的是发送UDP广播消息,然后等待机器返回消息 发送方: setInterval(function sendUDP() { var dgram = require('dgram'); var client = dgram.createSocket("udp4"); client.bind(function() { client.setBroadcast(false) }); var message = new Buffer('getinfo');
setInterval(function sendUDP() {
var dgram = require('dgram');
var client = dgram.createSocket("udp4");
client.bind(function() { client.setBroadcast(false) });
var message = new Buffer('getinfo');
client.send(message, 0, message.length, 9080, "192.168.43.255", function(err, bytes) {
client.close();
});
console.log("sended");
return sendUDP; }(), 10000);
发送方发送一个UDP数据包作为广播消息,接收这些消息的机器通过另一个端口回复。我正在服务器端监听这些传入消息,如:
var functions = require('./functiones.js');
var PORT = 9081;
var HOST = '0.0.0.0';
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
var IPAddresses=new Array();
server.on('listening', function () {
var address = server.address();
console.log('UDP Server listening on ' + address.address + ":" +
address.port);
});
server.on('message', function (message, remote) {
IPAddresses.push(remote.address);
console.log(String(message));
console.log(functions.parseToName(message));
});
server.bind(PORT, HOST);
//updateJSON(IPAddresses);
因此,有了以上代码,我可以接收所有消息
我想做的是在获取所有消息后创建一个json文件。假设我在网络上有20台机器,我需要通过向其中传递ipAddress
数组来触发另一个函数。但是机器只是发送消息,我可能会从20条消息中提取15条,计数并不重要,如果网络上没有5台机器,那么我会说它们的状态为关闭。要创建和更新json文件,我需要在接收者从机器获取消息后触发另一个函数,但我无法处理必须以何种方式触发该函数。没有消息会说“是的,我的操作完成了,您可以触发该函数来更新JSON文件”。
如果我有一个计数器,总是在超时时触发它,我可能会与发送方的超时发生冲突
任何建议和帮助都会很好
诚恳