net.connect:重新连接 tcp net.connects 产生连接 ECONNREFUSED

Posted

技术标签:

【中文标题】net.connect:重新连接 tcp net.connects 产生连接 ECONNREFUSED【英文标题】:net.connect: reconnecting tcp net.connects yields connect ECONNREFUSED 【发布时间】:2015-09-06 21:56:03 【问题描述】:

我有一个我正在尝试的 tcp 服务器客户端连接

 [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' 

客户端第一次连接到服务器的端口和主机时一切正常。 下次它给出这个错误。 为什么以及如何重新连接/修复此问题?

从概念上讲,抛开内部逻辑,这是服务器代码:

net.createServer( function serverConnection (connection) 

            connection.write('whatver i wana write');

            connection.write("\n");

            connection.on('end', function connectionEnd () 
               console.log("Client Connection Ended");
               connection.unref();
               connection.destroy();
               server.close();
           );


       connection.on('close', function connectionClose() 
          console.log("Connection Closed");
          connection.unref();
          connection.destroy();
          server.close();
       );

       connection.on('error', function connectionErr (err) 
           console.error(err);
           server.close();
       );

    );

【问题讨论】:

服务器拒绝连接。问题不在客户端。也许服务器正在通过 IP 或其他方式限制连接数,谁知道呢。 @mscdex 添加了骨架代码。能看到更新吗? 【参考方案1】:

您将在第一个连接关闭后关闭服务器。当您调用server.close() 时,服务器将停止侦听新连接。

【讨论】:

你对这个客户端错误熟悉吗?:错误:此套接字已被对方结束] code: 'EPIPE'

以上是关于net.connect:重新连接 tcp net.connects 产生连接 ECONNREFUSED的主要内容,如果未能解决你的问题,请参考以下文章

我的世界联机:出现了这串字母 Java.net.connect.exception:connec

如何在 VB.NET 中检查 TCP 服务器(套接字)与 TCP 客户端的连接状态

修改tcp连接设置

Node.js网络编程

Linux 系统优化参数总结

我的世界多人联机出现java.net.Connect Exception:Connection timed out: no further information怎么办