从Android手机控制应用程序

时间:2014-08-19 14:55:06

标签: android web-services android-intent

我的任务是创建一个Windows应用程序,我可以从Android手机发送命令。该应用程序应该能够在互联网上工作。所以我不能使用静态IP。

用于此的最佳技术是什么?目前我正在考虑做以下事情

我应该创建一个web服务,一旦在客户端(windows pc)上启动应用程序,然后它将其IP发送到webservice,然后让android应用程序将命令发送到webservice,然后将其发送到windows客户端。

有没有办法将消息直接发送到Windows客户端,而中间没有Web服务?

提前致谢

2 个答案:

答案 0 :(得分:0)

  

我应该创建一个web服务,一旦在客户端(windows pc)上启动应用程序,然后它将其IP发送到webservice,然后让android应用程序将命令发送到webservice,然后将其发送到windows客户端。

  

有没有办法将消息直接发送到Windows客户端,而中间没有Web服务?

“否”。实际上有,但是你需要一个完全运行的Web服务器。隐藏在NAT后面的PC客户端必须通过互联网以某种方式被其他人发现。如果这适合您,P2P就是您所需要的:Android P2P (direct-connection) over the Internet (behind NAT)

答案 1 :(得分:0)

通常在中间使用Web服务器运行您的Web服务将是首选方式。您必须记住,当您使用移动互联网连接上网时,您的移动ISP很有可能使用NAT将多个移动用户绑定到单个公共IP地址,因此您无法运行Web服务器当您通过移动运营商连接到互联网时,在Android手机上。

但是,有一种方法可以在不运行中间Web服务器的情况下执行您所要求的操作,即使用Windows计算机作为服务器并使用DDNS(动态DNS):

1)在Windows机器中设置DDNS - 有几种免费服务(以及许多付费服务)可让您在计算机上安装程序,该程序将报告PC的动态IP地址,并且您将获得一个域名始终指向Windows PC的名称。如果您希望在多台计算机上安装该程序,您可以尝试并实现自己的DDNS服务(但是,这将需要一个中间Web服务器......)

2)将Web服务器功能添加到Windows应用程序 - 简单地说,您需要在您希望使用的任何端口上为您的应用程序添加一个侦听器,以侦听请求并回答它们。如果您在家用路由器后面,请不要忘记打开必要的端口。

3)让您的Android应用程序连接到DDNS域名并执行必要的请求。