0

问题背景:

我有一台在 WAMP 服务器上运行本地网页的计算机。计算机已连接到无线连接。

我有一个连接到同一个无线网络的安卓平板电脑。

目的(我想做什么):

我希望能够通过我的 APP 使用主机名访问 WAMP 服务器上的本地网页。

我已经尝试过的:

我已经可以使用计算机的 IP 地址(http://192.168.xx/Webpage_Name)从我的应用程序中寻址网页。但是,由于我的 ip 是动态的(不断变化),因此此实现将不起作用。如果我错了,请纠正我。

我的想法是使用编辑计算机的主机文件。但是,我的理解是主机文件是静态的,这意味着它无法将主机名解析为更改的 IP 地址(它只存储一个 IP 地址及其相应的主机名)。此外,主机文件不会在 Android 设备上,因此 android 设备将无法使用主机文件中指定的主机名连接到服务器。如果我错了,请纠正我。

我的第二个想法是使用 DynamicDNS 服务。但是,我唯一的问题是,如果我想要免费的第三方服务来提供 DNS,我的网页信息就必须通过互联网。我希望这个网页保持在本地,所以我认为 DNS 不是一个选项。如果我错了,请纠正我。

我的第三个想法是首先通过应用程序在计算机和 Android 设备之间建立 TCP 连接。然后我会将计算机的 IP 地址以字符串形式从计算机发送到 android 设备。然后android设备可以使用发送的IP地址连接到本地服务器。现在我的理解是,您需要 ip 地址和端口来在 android 设备和计算机之间创建 TCP 连接,这就是为什么我认为这种实现不起作用的原因。由于我还需要在此选项中对 IP 地址进行硬编码,因此问题仍然存在。

主要问题(我想从你们那里知道什么):

有谁知道解决这个问题的任何其他选择?如果我错误地理解了上述选项之一(我已经尝试过的部分),并且您认为有办法让它们发挥作用,请告诉我。

4

1 回答 1

0

我找到了解决这个问题的方法。我在运行 WAMP 的计算机和移动设备之间创建了一个多播套接字客户端-服务器系统。计算机将充当服务器,而移动设备将充当客户端。建立连接后,我会在服务器端代码中获得计算机的 IP 地址。然后我通过多播套接字将 IP 地址作为字符串从计算机发送到客户端(移动设备)。然后,移动设备使用提供的 IP 地址创建指向 WAMP 服务器上指定网页的正确 URL 并加载该 URL。

有关服务器客户端系统的示例代码,请参阅此页面http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html

于 2013-04-18T14:05:33.110 回答