Nodejs错误:此套接字已被对方终止

我已经build立了一个简单的服务器和客户端,但是每当我closures客户端,似乎不可能重新连接。 这是我的客户:

const net = require('net'); var client = net.connect({port: 8080, host: '127.0.0.1'}); var response = ''; // events client.on('data', function(chunk) { response += chunk }); client.on('end', function() { console.log(response); client.end() }); // main execution client.write('test'); 

这里是我的服务器:

  const net = require('net'); var server = net.createServer(); server.listen(8080, '127.0.0.1'); server.on('connection', function(sock) { sock.on('data', function(chunk) { sock.write('test received'); sock.end(); }); }); 

这只是表示我的问题的大纲代码。 当我第一次执行我的客户端时,一切正常。 但是,当我再次执行它时,服务器输出标题和崩溃中提到的错误。 如果我删除“client.end()”,而不是从客户端程序Ctrl + C导致它结束相同的情况发生。

我对套接字的理解是,它们表示客户端和服务器之间的stream中的端点。 当这个stream不再需要的时候(也就是说,当客户端做了它需要做的事情),我希望这个stream被完全删除。 我会认为,在这个单一的stream的客户端和服务器端点调用end()将实现这一点,就像发送两个FIN消息,但是正如所解释的那样。 我想这样做的原因是这样的:(a)客户端文件将实际完成执行,并且(b)服务器将不再在其系统/浪费资源中的那个stream的套接字端点监听它。

任何洞察我的问题的来源将不胜感激。

您的服务器只在收到数据时closures套接字,并且您的客户端永远不会发送任何数据。