gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:32:58 25 4
gpt4 key购买 nike

当 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);

关于Node.js 如何使用 net.Server 处理数据包碎片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com