1

我想连接到在 NAT 网络上运行的 Android 设备上运行的客户端应用程序。基本上,我想运行我自己的 WebKey 服务器 (www.androidwebkey.com),它在 Android 手机上运行 Web 服务器。如果可以避免的话,我宁愿不运行 SSH 隧道或 VPN。所以我的问题是,像“登录我”、“网络密钥”等这样的人是如何工作的?我有以下拓扑:

安卓 \

Android --- ISP/MNO NAT -- 我的公共网络服务器 ----我的 ISP NAT --- 我(使用网络浏览器)

安卓 /

实际上,每个 Android 都在运行一个 Web 服务器,尽管这可能只是一个 VNC 服务器。我只需要能够远程访问它们。

我用谷歌搜索和搜索,但我很难找到关于它的信息。显然这是可能的,因为这正是 Web Key 和 Log Me In 的工作方式。我相信我必须从 Android 设备启动到我的公共服务器的 HTTP 连接并使用“保持活动”标头,但我不确定我如何通过我的公共 Web 服务器连接到最终客户端。我可以只连接到分配给此特定 Android 手机的 Web 服务器上的端口吗?

谁能指出我正确的方向?

4

1 回答 1

0

我意识到这是旧的,但我会提供一个答案,因为我没有看到一个。他们通常在公共服务器上有一个组件,该组件将客户端和服务器结合在一起。所以基本上客户端连接到组件,服务器也连接到组件,组件代理客户端和服务器之间的通信。

由于这个问题很老,所以我现在不会详细介绍,但这应该给出基本的想法。在某些情况下,从客户端到该组件的连接是通过另一个通道上的请求按需启动的,在其他情况下,它会不断维护。

所以在这些情况下,它实际上不是点对点连接,它通过一个中心位置。

于 2014-08-01T20:41:41.373 回答