在Android中进行通信的最佳解决方案

时间:2016-01-24 16:22:18

标签: android sockets http resources communication

我想和朋友一起创建一个Android应用(我的第一个)。这个应用程序的主要部分是关于两个设备之间的通信。电话A需要能够向电话B发送信息,反之亦然。我的问题是" *什么是建立这种沟通的最佳解决方案?" ...

目前我们正在尝试使用套接字。一部电话是服务器而另一部是客户端,然后他们进行通信。问题是它似乎没有工作,因为客户端永远不会到达服务器(超时)。这可能是因为客户端输入的IP地址是路由器地址......

另一个解决方案是拥有一个中间网络服务器,通过Http与手机通信。但我们认为它可能消耗大量的互联网连接。我们怎么知道呢?

如果您有任何想法,请帮助我们选择这两者之间的最佳解决方案。

编辑:我忘记提到两台设备不在同一个本地网络中,因此需要与互联网通信。

感谢。 玛瑙

2 个答案:

答案 0 :(得分:1)

我可以推荐两种方式:

  1. 最快的方法是通过设备之间的直接套接字连接解决此问题。也许它在你的情况下不起作用,因为其中一部手机在本地网络中。然后你通常无法从外部访问ip,导致网络地址翻译。因此,您根本不应该使用wifi连接并找到您设备的IP地址。以下是更多信息:https://de.wikipedia.org/wiki/Network_Address_Translation
  2. 以下教程可能对您有所帮助。 http://android-er.blogspot.co.at/2014/02/android-sercerclient-example-client.html

    1. 根据您想要实现的目标,您还可以构建REST后端。如果您需要高性能和快速通信,则不应使用此解决方案。对于构建REST-Backend,我可以推荐node.js和swagger,也许你应该看看这些技术。

答案 1 :(得分:0)

如果您的设备支持,您可以使用蓝牙或Wifi-P2P。 Check here

如果您正确执行此操作,现有系统也可以正常运行。为此,您可以在此处提供代码。

否则,如果服务器和客户端位于本地(可能是WiFi)网络中,则可以使用UDP广播。