gpt4 book ai didi

node.js - NET Node.js错误: read ECONNRESET (on Windows)

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:27 28 4
gpt4 key购买 nike

我正在尝试使用 Node.js 中的网络库来进行简单的消息传递。在 example在 Nodejs.org 上,他们提供以下代码作为基本的回显服务器:

var net = require('net');
var server = net.createServer(function(c) { //'connection' listener
console.log('server connected');
c.on('end', function() {
console.log('server disconnected');
});
c.write('hello\r\n');
c.pipe(c);
});
server.listen(8124, function() { //'listening' listener
console.log('server bound');
});

以及所述服务器的客户端:

var net = require('net');
var client = net.connect({port: 8124},
function() { //'connect' listener
console.log('client connected');
client.write('world!\r\n');
});
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
client.on('end', function() {
console.log('client disconnected');
});

上面的示例是有效的,但是,如果您从客户端代码中删除 client.end(); 并强制关闭客户端上的脚本(模拟客户端崩溃),服务器就会崩溃,如下所示好的错误:

Error: read ECONNRESET
at errnoException (net.js:904:11)
at TCP.onread (net.js:558:19)

我尝试使用 c.on("error",function(){}) 以及 server.on('error', function 捕获服务器代码中的错误(e) {}); 但在这两种情况下,当客户端在不使用 client.end()

的情况下断开连接时,服务器仍然崩溃

检查此错误的正确方法是什么,以便服务器执行 console.log('connection reset by peer') 而不是崩溃?

更新:我在我的 linux 机器上尝试了同样的代码,它似乎工作得很好......那么为什么它在 linux 中工作但在 windows 中不起作用呢?

最佳答案

您可以通过在“createServer”函数中添加以下代码来捕获该错误:

process.on('uncaughtException', function (err) {
console.error(err.stack);
console.log("Node NOT Exiting...");
});

关于node.js - NET Node.js错误: read ECONNRESET (on Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22897034/

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