gpt4 book ai didi

java - 如何让我的设备的 IP 地址可以从任何地方访问?

转载 作者:行者123 更新时间:2023-11-30 11:02:51 25 4
gpt4 key购买 nike

我正在开发一款可以向其他手机发送消息的应用程序。在某种程度上有点像聊天信使。我的应用程序应该工作的方式是用户输入一个 IP 地址和一条消息,然后应用程序将消息发送到指定的 IP 地址。我目前让服务器和客户端在同一个应用程序中工作。这样,任何电话都可以连接到任何其他电话,因为每个电话都有其独立的服务器,可通过设备的 IP 地址访问。但是,我无法连接到不在我的 LAN 上的 IP 地址。 我想知道如何让服务器从未连接到我的 LAN 的设备接收消息?

我阅读了有关端口转发的内容,这似乎是一个不错的解决方案,但安全风险并不令人鼓舞。我还考虑使用公共(public) IP 地址(例如 Amazon 的 Web 服务器)来运行我的服务器,并且可以从世界任何地方访问该 IP 地址。唯一的问题是服务器如何知道将消息发送到哪个设备?

最佳答案

正在监听传入消息的“服务”需要一个公共(public)的可寻址的 IP 地址。地址在下面列出的范围内被称为私有(private)的,不能“全局”到达。它们对您的局域网是私有(private)的。

192.168.0.0 - 192.168.255.255(65,536 个 IP 地址)
172.16.0.0 - 172.31.255.255(1,048,576 个 IP 地址)
10.0.0.0 - 10.255.255.255(16,777,216 个 IP 地址)

此外,您的“服务”IP 地址可以位于 NAT 防火墙之后,这意味着您的“服务”IP 地址似乎是公开的不是真正公开的。 NAT 是将 IP 转换为另一个 IP 地址的地方。这通常发生在互联网服务提供商或电信网络运营商处。

他们解决这个难题的方法是拥有一个公共(public)可寻址服务器来自某个托管公司的某个地方,并使用它来路由您的消息。

每个移动客户端都可以连接到该服务器并获得一个标识符,可能与用户的电子邮件地址相关联。注册后,移动客户端可以要求服务器为该特定用户排队一些消息。

也可以使用 Google Cloud 消息传递作为传递机制,这样可以唤醒移动客户端以从服务器收集消息。或者消息甚至可以在推送消息中。

关于java - 如何让我的设备的 IP 地址可以从任何地方访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30626980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com