【问题标题】:How can I make remote clients get access to my server?如何让远程客户端访问我的服务器?
【发布时间】:2016-04-06 05:52:23
【问题描述】:

那里, 我正在尝试使用 netty-socket io https://github.com/mrniko/netty-socketio 编写一个聊天应用程序。

我的服务器代码

    Configuration config = new Configuration();
    config.setHostname(my IP address);  
    config.setPort(3000);
    final SocketIOServer server = new SocketIOServer(config);
    server.start();

在客户端(网页)我有:

    var socket =  io.connect(my IP address);

当我使用我的公共/外部 IP 地址(当你用谷歌搜索“我的 ip 是什么”时得到的那个)时,我得到 无法分配请求的地址:绑定错误

当我使用我的内部地址时,服务器只能被同一网络(我学校的wifi)上的客户端访问

我只想知道远程客户端如何通过 ip 地址访问我机器上的服务器。谢谢。

我是这个领域的新手,有很多疑问,所以如果问题很愚蠢,请提前道歉。

【问题讨论】:

  • 这是防火墙和/或路由问题
  • 那么我应该使用哪个IP地址?外部ip还是别的什么?

标签: socket.io server ip netty


【解决方案1】:

当您使用公共 IP 时,外部客户端无法访问您,因为它是您学校的公共 IP(所有连接的机器具有相同的共享公共/外部 IP)并且您学校的防火墙或路由器不是配置为将流量从端口 3000 路由到您的特定机器。 必须更改配置...但可能您不能这样做。

因此,您只能将一个 ip/端口与您的内部网络 IP 绑定,并且只能由同一网络上的机器访问。

最好的解决方案可能是将您的服务器放在学校网络之外,使用托管服务

【讨论】:

  • 感谢您的回复。您对托管服务有什么建议吗??
  • @Kevin 并非如此,您有很多供应商(如 gandi、ovh、google、amazon ......)选择您喜欢的那个。您也可以使用自己的机器,它可能会便宜一些,但它必须在您学校的网络之外,并且必须经常在线才能访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多