为什么连接到不同的端口会导致不同的错误Node.js

为什么连接到不同的端口会导致不同的错误Node.js

问题描述:

有点背景,我自学Node.js,我在我的mac上创建了一个hello.js文件,并使用node hello.js运行它。我可以从localhost:port127.0.0.1:port访问网页。为什么连接到不同的端口会导致不同的错误Node.js

我的最终目标是能够从其他机器访问网页。我浏览了很多SO页面。我在我的app.listen()中加入了'0.0.0.0',但到目前为止还是不成功,我相信我会在以后找出答案。我知道有很多关于如何从其他机器设备连接到本地主机的问题和重复,请不要混淆,因为这不是我的问题!

在我搞清楚如何做的过程中,我很好奇为什么当我尝试连接到不同的端口时,我从另一台机器的chrome中得到不同的错误?

这是我hello.js:

const http = require('http'); 

http.createServer((request, response) => { 

    response.writeHead(200, { 
     'Content-Type': 'text/plain' 
    }); 
    response.write('Hello, My name is Oliver\n'); 
    response.end(); 

}).listen(1337, '0.0.0.0', function() { 
    console.log('Listening to port: ' + 1337); 
}); 

端口1337: 当我通过运行node hello.js enter image description here

使用端口1337,我可以连接到网页罚款在我的Mac使用127.0.0.1:1337。 但是,当我试图把它从我的其他机器(Windows)中使用Chrome连我得到

enter image description here

端口2701 现在,当我使用端口2701再次运行node hello.js enter image description here 再次尝试连接它从我的使用127.0.0.1:2701我从铬以下错误其他机器: enter image description here

端口1433 按照上述步骤,然后我得到这个错误:

enter image description here

我一点都没有改变的代码,但我当我切换不同的端口,我得到不同的错误。大约有连接到不同的充端口,Node.js的,例如一些职位: HTTPComponent Connect to different portNode js route request to different port

但这些职位没有对为什么它会导致不同的错误触摸。有人可以解释这种行为吗?

编辑:我知道127.0.0.1是指我的本地主机,所以我将不得不使用我的Mac的真实IP地址。但是我的好奇心仍然存在,为什么连接到本地主机上的不同端口会导致不同的错误?

+0

当你从另一台机器连接时你必须使用它的IP地址,'127.0.0.1'指localhost –

+0

gotcha我会更新我的问题。 –

当你想从另一台机器访问你的服务器时,你应该使用它的真实IP地址。 127.0.0.1或localhost仅供本地使用。

E.g.您的Mac的IP为123.456.789.123。通过本地呼叫,您可以使用127.0.0.1,localhost或123.456.789.123。 对于远程呼叫,您始终使用123.456.789.123。

+0

啊我怀疑这可以帮助我解决从我的窗口机器连接问题。所以目前我连接我的Windows机器的本地主机,而不是我的Mac正确?那么如何连接到本地主机上的不同端口会导致不同的错误? –

+0

嗨@PaveGatnar这里是我的更新:我用'ifconfig | grep“inet”| grep -v 127.0.0.1'在我的终端上得到我的IP在我的Mac上是10.35.131.255。我试图用'10.35.131.255:1337'再次尝试从Windows连接到我的服务器,但是我收到错误“ERR_CONNECTION_TIMED_OUT”,说服务器花了很长时间回应。我也尝试使用'10.35.131.255:1337'在我的Mac本身上连接到它,然后出现错误ERR_NETWORK_ACESS_DENIED,表示您的Internet访问被阻止。它为什么这样表现? –

+0

它接缝你必须在Mac上配置防火墙设置。 –