Node.js如何使用net.Server处理数据包碎片

当net.Server接收到的数据超过1500字节(默认mtu)时,数据包的每个片段都会执行'on data'事件。 有没有办法在一个“数据”的电话接收整个数据包?

谢谢。

尝试这个

var sys = require('sys'); var net = require('net');; var socktimeout = 600000; var svrport = your_port; var svr = net.createServer(function(sock) { var mdata = new Buffer(0); //sys.puts('Connected: ' + sock.remoteAddress + ':' + sock.remotePort); sock.setTimeout(socktimeout,function(){ sock.end("timeout"); sock.destroy(); }); sock.on('data', function(data) { if(mdata.length != 0) { var tempBuf = Buffer.concat([mdata, data]); mdata = tempBuf; } else { mdata = data; } var len=got_your_Packget_length(mdata); if(mdata.length == len) { do_your_job(mdata) mdata = new Buffer(0); } }); sock.on('error', function(err) { // Handle the connection error. sys.puts('error: ' + err +'\n'); }); }); svr.listen(svrport);