Javascript 使用node.js重新组装udp消息

Javascript 使用node.js重新组装udp消息,javascript,node.js,udp,datagram,Javascript,Node.js,Udp,Datagram,我刚刚开始学习node.js和UDP。我正在尝试捕获UDP数据包,然后格式化输出 我正在接收的UDP数据包被拆分为多条消息。我想不出如何重新组合信息。我可以连接每条消息,但如何知道消息是否完整?我需要处理这些数据,但我需要完成消息 仅供参考。。。这适用于记分板类型的应用程序。统计数据通过UDP广播,我正在尝试创建一个应用程序来监控统计数据 下面是一些基本代码 var dgram = require("dgram"); var server = dgram.createSocket("udp4")

我刚刚开始学习node.js和UDP。我正在尝试捕获UDP数据包,然后格式化输出

我正在接收的UDP数据包被拆分为多条消息。我想不出如何重新组合信息。我可以连接每条消息,但如何知道消息是否完整?我需要处理这些数据,但我需要完成消息

仅供参考。。。这适用于记分板类型的应用程序。统计数据通过UDP广播,我正在尝试创建一个应用程序来监控统计数据

下面是一些基本代码

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

server.on("message", function (msg, rinfo) {
STATS = STATS + msg;
msg = msg + '<!>';
console.log(msg);
  });

// *****************************
// When the message is complete
// Process STATS 
// *****************************

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

server.bind(10101);
// server listening 0.0.0.0:41234
var dgram=require(“dgram”);
var server=dgram.createSocket(“udp4”);
var fs=需要('fs');
var统计;
打开(“消息”,函数(msg,rinfo){
STATS=STATS+msg;
味精=味精+“”;
控制台日志(msg);
});
// *****************************
//当消息完成时
//进程统计信息
// *****************************
server.on(“侦听”,函数(){
var address=server.address();
log(“服务器侦听”+
address.address+“:”+address.port);
});
服务器绑定(10101);
//服务器侦听0.0.0.0:41234

您可以控制客户端吗?如果是这样,您可以简单地使用某种符号来标识消息的结尾,并且您的程序可以检测
msg
是否以该结尾

但是UDP套接字是不稳定的——不能保证任何消息会真正到达。也不能保证您的数据报将按照您发送它们的顺序到达。纠正这些问题更为复杂——如果您不需要实时性要求,那么切换到TCP就容易多了


当您从客户端发送数据时,TCP会自动将数据分割成块,因此您需要使用相同的消息端系统,或者检测套接字何时关闭。

我无法更改正在发送的数据。在控制台上显示时,消息中是否可能有未显示的信息?有什么东西可以帮助把信息重新组合起来?我知道这是一个非常古老的问题,但你有没有找到解决办法?