node.js - 在不同的机器上运行客户端和服务器

标签 node.js server client ethernet

我已经设置了 client.jsserver.js 并完美运行。现在唯一的问题是我需要在一台机器上运行客户端,在另一台机器上运行服务器。

但是,通过使用以太网电缆连接,只能运行server.js。即使双方能够 ping 通对方的 IP 地址,客户端也无法连接。

我可以研究任何解决方案吗?非常感谢!

请注意,这将在虚拟机 ubuntu 上运行。例如,PC 1 将在 virtualbox ubuntu 上运行 server.js,PC 2 将在 virtualbox ubuntu 上运行 client.js。但是,运行 server.js 后,client.js 不会启动/加载。

最佳答案

当您在同一台计算机上运行客户端和服务器时,您可以使用 localhost 主机名或 IP 127.0.0.1 通过称为环回接口(interface)的东西进行连接,该接口(interface)基本上是一个虚拟网卡,将所有内容路由回自身。

当它们位于不同的计算机上时,您需要使用真实的 IP 或主机名,因此您需要更新代码或配置以访问正确的 IP 或端口。

此外,防火墙还可以阻止外部连接的端口,这对于localhost很少这样做。您还需要确保您的端口未被阻止。

当然,对于不包括以下内容的问题,只能给出非常笼统的答案:

  • 错误消息
  • 使用的 IP 地址和端口
  • 使用的协议(protocol)
  • 源代码

一般建议是:

  1. 检查您的 IP
  2. 检查您的防火墙

Ping 使用 ICMP 协议(protocol),因此可以与 ping 建立连接,但不能与 TCP 建立连接,我假设您正在使用 TCP(但同样,您没有指定这一点)。当然,您永远无法确定您正在 ping 哪台机器,只是您得到了答案,因此理论上您有可能正在 ping 自己。您需要获得正确的 IP。

要了解服务器上的 IP 地址,请参阅以下答案:

关于node.js - 在不同的机器上运行客户端和服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41594786/

相关文章:

javascript - 构建需要很长时间响应的 API 的最佳实践是什么?

node.js - Sequelize 关联问题

java - java服务器中的请求没有查询字符串

python - 用于发送字符串数据的简单 rpyc 客户端和服务器

python - SSH 关闭时保持 Django runserver 事件

c# - 等待异步响应?

arduino - ESP8266 - 实时更新服务器,无需刷新?

javascript - 使用 Node 和 Meteor 将 PDF 转换为图像 - 如何将缓冲区作为输入文件传递?

javascript - 无法从 Node JS 中的另一个箭头函数调用箭头函数

oracle - Oracle 即时客户端和 Oracle 客户端的区别