我正在尝试执行以下操作:
我希望服务器在客户端“注册”服务器之后通知特定客户端某些事件。例如,客户端可以指示打开哪个端口,并发送IP地址。
我看到的所有问题都与谷歌云等云服务有关,但我对此并不感兴趣。
我面临的问题是:
我很困惑因为: - 如果无法发送到特定设备,多个设备如何浏览互联网并使用telnet / ftp ...?不知何故,数据包正在找到正确的设备。
我知道我遗失了一些东西,但我不知道它是什么,以便提出正确的技术问题。
问题是:
在客户端向服务器注册后,如何将特定消息从服务器发送到LAN上的多个客户端之一?
答案 0 :(得分:1)
您的LAN已连接到外部网络,并且很可能正在进行NAT,因此内部IP地址与外部网络上的IP地址不同。
广泛使用的NAT形式不仅可以转换IP地址,还可以转换端口号。这允许许多内部LAN设备在外部网络上共享相同的单个IP。家用路由器通常使用这种方法。
当内部网络上的设备连接时。路由器会记住使用了哪个外部端口,并将任何返回的流量定向到正确的内部设备。这是运行telnet / ftp等的多个设备可以访问互联网以回答您的第一个问题。
但是,如果没有帮助,进入LAN的新连接将无法路由到特定的内部设备。路由器不知道在哪里发送它以前没有记住的请求。
但是,大多数路由器都有一个称为端口转发的功能,您可以在其中指定如何处理来自外部网络的特定端口的请求。如果您设置端口转发并以某种方式将该信息提供给LAN外部的服务器。它可以向这些端口发送请求,路由器会将其传递给您预先配置的匹配的内部IP和端口号。
如果您认为您没有使用带端口转换的NAT(它有许多不同的名称),请告知您。然后其他人可以进一步建议