【问题标题】:Get IP of Websocket on known port在已知端口上获取 Websocket 的 IP
【发布时间】:2020-03-12 16:44:58
【问题描述】:

我已经用 C++ 构建了一个 websocket(使用 boost::beast)。 如果需要,它将使用 JSON 字符串为网站(客户端)提供服务。 在设计我的设置时,我犯了一个灾难性的错误:我忘记了客户端 Web 浏览器(运行在与服务器不同的设备上)不会知道服务器的 IP 地址。它会知道服务器正在监听的端口。

我应该指定:(服务器和客户端)都在本地网络中运行。

所以我有两个笨拙的想法来解决这个问题。我很高兴听到您的意见 - 我相信会有更优雅的方式来解决我的问题。

  1. 向网络发送某种广播消息“非常特定的字符串”。我的服务器将知道它已被查找,并将以其 IP 响应,以便可以建立连接。 This post 似乎表明这种方法是不可能的。

  2. 让用户输入运行服务器的设备的(已知)IP 地址。我真的很想避免这种最后的解决方案。

很遗憾,我无法在托管 websocket 服务器的设备上运行 node.js。

【问题讨论】:

    标签: javascript connection beast-websockets


    【解决方案1】:

    我可能不明白这个问题。为什么你不能知道服务器的IP?是因为它改变了吗?是因为它是您不认识的服务器吗? 也许解决方案不是寻找IP,而是事先知道服务器IP地址。

    我建议您查看this post 以找出您本地网络中的 IP 地址。如果您至少知道可能会有所帮助的服务器的服务器名称。

    【讨论】:

    • 感谢您的意见!这导致我想出了我在单独的帖子中发布的设置。
    【解决方案2】:

    @E.Soria 谢谢您的回答!我不够精确。

    问题是,服务器在将成为我们客户网络一部分的设备上运行。客户将定义设备的 IP 地址,这意味着我需要某种方式来获取服务器的地址。

    但我可能已经找到了另一种解决方案(因为您可能已经能够告诉我我对网络很陌生,所以这可能是错误的):我将在托管服务器并提供服务的同一设备上托管网站数据。然后我可以像这样通过javascript建立一个websocket连接:let socket = new WebSocket(ws://127.0.0.1:8080);并让网站从服务器读取数据。这似乎很简单,我有点尴尬,我之前没有想到这一点。 我只是没有真正理解互联网是如何工作的 :) 只要想要查看该网站的用户知道它的托管位置,他/她就可以连接到该网站并看到我放在那里的任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 2017-11-02
      • 2011-01-08
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多