gpt4 book ai didi

node.js - 在不同主机上建立套接字连接时出现 'ECONNREFUSED' 错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:18:54 25 4
gpt4 key购买 nike

显然,我正在测试使用 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');
});

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

最佳答案

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

关于node.js - 在不同主机上建立套接字连接时出现 'ECONNREFUSED' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7949277/

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