2013-04-12 30 views
0

背景问题主机名:连接从Android设备的locahost使用动态IP地址(不断变化的)

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

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

目的(我想这样做):

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

什么,我已经尝试过:

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

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

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

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

主要问题(我想知道,从你们):

有谁知道任何其他的选择来解决这个问题?如果我错误地理解了上面的某个选项(我已经尝试了部分内容),并且您认为有一种方法可以使它们正常工作,请让我知道。

回答

0

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

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

相关问题