无法从本地网络上的不同设备访问Mac上的节点服务器

Han*_*gbo 8 macos node.js osx-mavericks

我在Mac上用OS X 10.9运行节点服务器.这是代码

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(3000, '0.0.0.0');

console.log('Server running at http://192.168.1.120:3000/');
Run Code Online (Sandbox Code Playgroud)

我可以在我的Mac上使用Safari来访问服务器http://192.168.1.120:3000/.但是当我用我的iPhone访问服务器时,它失败了.我的Mac的防火墙已关闭,而我的iPhone与Mac的WiFi相同.

she*_*ead 3

由于声誉较低而回答。我不确定这是否能解决您遇到的问题。

首先,我注意到监听函数中的地址和打印到控制台的内容是不同的。其次,如果 Node 在您的计算机本地运行,您可能希望连接到您计算机的 IP,而不是 Node 服务器提供的 IP。我相信 Mac 有一个ifconfig终端命令。这应该会返回网络上计算机的 IP。

我复制了您的代码并从函数中删除了“0.0.0.0” listen。然后我就可以启动服务器并在手机上连接到它(使用计算机的 IP)。当然,这是在运行 Arch 的 MacBook 上并使用 Note III 进行连接。

希望这可以帮助!