【问题标题】:StreamSockets in Windows 8 javascript appWindows 8 javascript 应用程序中的 StreamSockets
【发布时间】:2013-04-22 17:03:15
【问题描述】:

我对网络世界很陌生,我正在尝试创建一个需要网络的 Windows 8 Metro 风格应用程序。

我基本上想使用StreamSockets通过互联网连接两台计算机。

通过使用"localhost" 作为主机名,我已经能够连接在同一台计算机上运行的 2 个不同的应用程序。 (就像他们在官方的 Microsoft StreamSocket 示例中所做的那样)。

但是,如果我要通过 Internet 连接两台计算机,我不确定主机名应该是什么。

谢谢

【问题讨论】:

  • 很可能是计算机 IP 地址...localhost 将解析为 127.0.0.1
  • 我认为它应该是一个IP地址。但是如果它们与我的计算机不在同一个网络中,我不确定如何获取它们。

标签: javascript sockets networking microsoft-metro


【解决方案1】:

嗯,访问远程计算机有两种不同的场景:

  1. 如果您要连接的计算机是家用计算机并通过网络提供商 DSL 连接到 Internet,并且公共 IP(Internet 看到的 IP)不是专用的(固定的),那么您可能必须使用“www.dyndns.org”(或任何其他)配置路由器,路由器将在 IP 更改时更新它。您必须为计算机命名,例如“myfriend.myhouse.net”。如果 IP 是固定的,则在路由器关闭/打开时它不会改变,然后直接使用 IP 而不是主机名。见http://www.whatismyip.com/ 无论哪种情况,您都需要在路由器 (NAT) 中打开端口,以便路由器将数据包发送到正确的内部 IP。阅读路由器手册以获得帮助。

  2. 如果您要连接的计算机属于域、企业,那么您需要与他们的网络管理员团队交谈。他们可以打开或允许您访问他们的网络。

解决这些问题后,您可以使用上述主机连接到计算机:“myfriend.myhouse.net”而不是“localhost”。

更多帮助可以在互联网上询问“远程桌面”或“远程访问我的家庭计算机”

【讨论】:

  • 非常感谢您的回答。如果我想创建多人游戏怎么办?播放会话的两台计算机中的一台也将充当主机?客户端如何找到它的 IP 并连接到它?谢谢。
  • 要查找计算机的 IP 地址,您需要一个主机名,例如 myname.myhost.net。这个域名可以购买,见dyndns.org,是我用的。您可以购买一个域,并在不同的地方拥有多台计算机; computerONE.mydoain.net、computerTWO.mydomain.net 等。这些计算机通过路由器或在每台计算机上运行的特殊程序传播其 IP 地址,该程序会更新您的 DNS 提供商中的主机 IP,例如 dyndns。
  • 是的,我现在明白了。但是,如果 2 个随机玩家下载并玩我的多人游戏,我将有一个脚本在他们的一台计算机上创建一个 Socket 服务器。另一个必须找到不使用 DNS 提供商的服务器 IP 地址。基本上两台计算机将直接连接。有没有办法让客户端在没有 DNS 提供商的情况下找出服务器的 IP 地址?提前致谢!
  • 可能是我在您的问题中遗漏了一些东西,但据我所知,没有什么可以替代 DNS。恐怕您必须有一个 DNS 客户端才能找到服务器 IP。这就是您连接到任何 WEB 页面时所做的事情。它们需要在 DNS 中,这样浏览器才能找到它的 IP,除非您知道它的 IP 地址。此外,您可以通过电话或电子邮件通知您的客户新的 IP,并在您的游戏中输入一个输入框,客户每次连接到服务器时都可以在其中输入 IP。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多