在安卓中通信的最佳解决方案



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

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

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

如果您有想法,请帮助我们在这两者或另一个之间选择最佳解决方案。

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

谢谢。缟玛瑙

我可以推荐两种方法:

  1. 最快的方法是通过设备之间的直接套接字连接来解决此问题。也许它在您的情况下不起作用,因为其中一部电话位于本地网络中。然后你通常不能从外面访问ip,这是网络地址转换的原因。因此,您根本不应该连接wifi并找出设备的IP地址。以下是更多信息: https://de.wikipedia.org/wiki/Network_Address_Translation

也许以下教程对您有所帮助。http://android-er.blogspot.co.at/2014/02/android-sercerclient-example-client.html

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

如果您的设备支持,您可以使用蓝牙或 Wifi-P2P。在这里查看

如果您做得好,您现有的系统也可以工作。为此,您可以在此处提供代码。

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

最新更新