Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在不同主机上建立套接字连接时出现“ECONNREFUSED”错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
显然,我正在测试使用Node.js的简单TCP服务器.

如果服务器代码和客户端代码都在同一台机器上,则它们运行良好.

但是,似乎当我在不同的机器上运行服务器并测试从不同机器的客户端连接到服务器时,我得到如下错误.

Error: connect ECONNREFUSED
at errnoException (net.js:589:11)
at Object.afterConnect [as oncomplete] (net.js:580:18)

我尝试输入服务器的IP地址或服务器的域名,但没有运气.

服务器代码如下所示(服务器以root权限运行..)

var net = require('net');
var HOST = '127.0.0.1';
var PORT = 6969;
net.createServer(function(sock) {
    console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);
    sock.on('data',function(data) {

        console.log('DATA ' + sock.remoteAddress + ': ' + data);
        sock.write('You said "' + data + '"');

    });
    sock.on('close',function(data) {
        console.log('CLOSED: ' + sock.remoteAddress +' '+ sock.remotePort);
    });

}).listen(PORT,HOST);

console.log('Server listening on ' + HOST +':'+ PORT);

客户端代码如下所示

var net = require('net');
var HOST = '127.0.0.1'; //I set it to server IP address but no luck.. 
var PORT = 6969;
var client = new net.socket();
client.connect(PORT,HOST,function() {
    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    client.write('I am Chuck Norris!');
});
client.on('data',function(data) {        
    console.log('DATA: ' + data);
    client.destroy();
});
client.on('close',function() {
    console.log('Connection closed');
});

如果我希望服务器接受来自不同机器的套接字连接,是否有任何配置需要通过?我是否必须将服务器代码作为生产模式运行(如果有这样的模式)?或者,端口范围有限制吗?

解决方法

将服务器设置为绑定到0.0.0.0并将客户端设置为连接到服务器的正确IP地址.如果服务器正在侦听127.0.0.1,它将只接受来自其本地主机的连接.

大佬总结

以上是大佬教程为你收集整理的node.js – 在不同主机上建立套接字连接时出现“ECONNREFUSED”错误全部内容,希望文章能够帮你解决node.js – 在不同主机上建立套接字连接时出现“ECONNREFUSED”错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。