我尝试自己解决这个问题,但失败了。起初,我只是想创建最简单的本地主机服务器,而且它有效,所以我考虑了在线服务器(通过端口转发),以便我的 friend 检查我的代码。我想我做错了什么,所以我问你。代码:
var http = require('http');
var options = {
hostname: '178.217.195.9',
port: 45555
};
var server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end("working?");
});
server.listen(options, () => {
console.log(`Server running at 178.217.195.9:45555`);
});`
来源:https://nodejs.org/docs/v8.11.2/api/synopsis.html
我试图在最新版本(10.3.0)上运行此代码,今天我尝试使用推荐的版本(8.11.2)。没有任何变化,所以我想这一定是我的错。
发生什么事了?当我检查(端口转发后)178.217.195.9:45555时,它不存在。
但是当我检查 localhost:45555 时,它起作用了。我不知道该说些什么。
这很奇怪,正如主题所说,它似乎忽略了我输入的IP,用localhost更改它。
也许代码是错误的。我听说“只需用你的公共(public) IP 更改 127.0.0.1 就可以了”,所以我就这样做了。
此代码仅适用于本地主机服务器吗?
我不知道它是否有任何帮助,但通常我使用 p5.js 库(编码列车),端口转发设置为:服务端口 - 45555, IP 地址 - 192.168.0.103(在 cmd 中检查),内部端口 - 45555,协议(protocol) - TCP 或 UDP。
我在防火墙中添加了 45555 端口的异常(exception)。有时,当我尝试更改代码以测试其他选项时,但概念是相同的,它会显示错误:监听 EADDRNOTAVAIL 178.217.195.9:45555。
更改端口没有帮助。然后我通常会回到 ^ 这段代码。通过控制面板我将IP设置为静态。 IP地址:192.168.0.103,默认网关:192.168.0.1,子网掩码:255.255.255.0(如果有任何帮助的话)。
之前(我不记得具体是什么时候,但大约是 3 个多月前)我还将首选 DNS 服务器设置为:8.8.8.8 和 8.8.4.4。当前 Node.js 版本是 8.11.2,npm 6.1.0。我真的不想使用 Heroku 或其他类似的程序。我听说过一些关于 WebSockets 的事情,稍微搞了一下,但什么也没发生。我对那里的有用信息没有任何其他想法。我希望有人能帮助我,我会回答有关其他信息的每个问题。
最佳答案
选项中必须是主机
,而不是主机名
。因此,对于您的代码,选项中不存在 host
,因此使用 localhost
作为默认值。
server.listen(options[, callback])
server.listen(options[, callback]) # Added in: v0.11.14 options <Object> Required. Supports the following properties: port <number> host <string> path <string> Will be ignored if port is specified. See Identifying paths for IPC connections. backlog <number> Common parameter of server.listen() functions. exclusive <boolean> Default: false readableAll <boolean> For IPC servers makes the pipe readable for all users. Default: false writableAll <boolean> For IPC servers makes the pipe writable for all users. Default: false callback <Function> Common parameter of server.listen() functions. Returns: <net.Server>
关于javascript - Node.js 似乎忽略了我给出的 IP 地址,而是使用 localhost 打开服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50655992/