javascript - Node.js 似乎忽略了我提供的 IP 地址,而是使用 localhost 打开服务器
问题描述
我试图自己解决它,但我失败了。起初我只是想创建一个最简单的本地主机服务器,它可以工作,所以我想到了在线服务器(通过端口转发),让我的朋友检查我的代码。我想我做错了什么,所以我问你。编码:
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 更改它。
也许代码是错误的。我听说“只需使用您的公共 IP 更改 127.0.0.1 并且应该可以工作”,所以我做到了。
此代码仅适用于本地主机服务器吗?
我不知道它是否会有所帮助,但通常我使用 p5.js 库(编码列车),端口转发设置为:服务端口- 45555,IP 地址- 192.168.0.103(在 cmd 中检查),内部端口- 45555,协议- TCP 或 UDP。
我为 45555 端口的防火墙添加了例外。有时,当我尝试更改代码以测试其他选项时,但概念相同,它会显示Error: listen 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
而不是hostname
。因此,host
选项中不存在您的代码,并且localhost
默认使用该代码。
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>
推荐阅读
- openssl - 使用openssl s_client通过HTTPS隧道手动获取数据
- mongodb - MongoDB - 如何判断每个文档在聚合匹配后是否有一个完全匹配的元素数组
- phpstorm - PhpStorm - 标签名称中的空格问题(2020.3 版)
- java - 你如何转换地图
与杰克逊一起进入 {"keyprop" : key, "valueprop" : value} 的数组? - clojure - 如何正确检查 Java Interop 中的布尔值?
- sql - SQL 函数创建
- git - git double change,大小写相同的文件名
- javascript - Django:jQuery触发表单提交onchange of checkbox并保留重新加载时的值
- c# - 当桌面区域更改时,Appbar 会移动
- php - 使用 mysqli_connect() 创建到 mysql 的远程连接