智能手机是否可以通过3G/4G进行点对点通信?

7
我正在尝试编写一个应用程序,将数据从一个Android设备传输到另一个设备 - 但这些设备很可能位于城市、州或国家的不同地方。(直接的方法是使用中央服务器(或任何类型的服务器),但我试图避免使用它。)
我要传递的数据是文本、图片或两者的组合。
到目前为止,我找到的解决方案是通过特殊格式的文本或图片消息进行通信;但这似乎远非最佳解决方案。有更好的解决方案吗?
3个回答

3

在 3G 网络上不能实现真正的 P2P。

在您的问题中,您提到您目前使用消息。我假设您指的是短信。

相反,您可以使用带有自定义 MIME 类型的邮件和附件,例如 application/foobar-data

在您的应用程序中,可以启动包含此附件的 SEND intent。然后用户将不得不选择他/她喜欢的电子邮件程序(或者这可能是自动的),并将其发送给接收方。您还可以在 intent 中指定 To: 地址和主题。这将非常简单明了。

然后远程用户将收到此邮件并点击附件。您的应用程序将在清单中使用意图过滤器注册处理 application/foobar-data MIME 类型,然后自动启动并接收数据。稍早生成的邮件正文也可以预先填充有关您的应用程序以及如何安装它的信息,例如“您需要 FooBar 来查看附件。您可以从... 安装它”。

因此,最终,您的应用程序可以在不依赖专用服务器的情况下同时发送和接收自定义数据。


2
你能否提供一些证据来证明“3G网络上无法实现真正的点对点传输”这个说法吗?我倾向于认为这个说法是不正确的。 - Tom
2
我不是3G方面的专家,但似乎根据运营商的不同,有两个问题:1. IP地址不能保证是公共的;2. 如果不是完全被阻止,那么传入连接基本上会被过滤。在这种情况下,对等体无法可靠地与另一个对等体建立连接。它可能在某些罕见情况下起作用,但谁知道呢。连接需要由服务器进行中介。这不是真正的P2P。 - olivierg
感谢您的解释。根据您的陈述“它在某些罕见情况下可能有效,但谁知道”,我已编辑您的答案以反映其主观性质。 - Tom

1

使用Amazon Simple Queue Service

Amazon Simple Queue Service(Amazon SQS)提供了一个可靠、高度可扩展的托管队列,用于存储消息在计算机之间传输。通过使用Amazon SQS,开发人员可以简单地在执行不同任务的应用程序的分布式组件之间移动数据,而无需丢失消息或要求每个组件始终可用。


1
这是一个基于服务器的解决方案。 - Paul Sasik
@PaulSasik 这是可以的,但你不需要购买昂贵的硬件。 - Octavian Helm
1
问问题者说的是:“直接的方法是有一个中央服务器,但我试图避免使用它。”所以,是的,Amazon SQS是一个分布式服务器解决方案,而不是一个中央服务器解决方案,而且他不需要构建和维护。我同意这种差异是微妙的,但它很重要,并认为它很好地处理了潜在的问题,即使不完全符合提问者的意图。 - gby
@伪sudo 我明白,但你应该知道你发送的短信/彩信也使用了中间人 - 提供连接的电信公司,对吧? :-)你总是在使用中间人 - 你可能想要一个可靠的中间人,也许不仅限于互联网连接设备。也许你想要类似高通Alljoyn这样的东西?不确定它是否适合你,因为它是基于接近距离的。听起来不像你想要的。 - gby
对不起,我没有考虑清楚就发表了评论。 - pseudosudo
显示剩余3条评论

0
看看ShazzleMail。你可以下载他们的应用程序并在智能手机上进行点对点通信。寻址是通过中间人完成的,但所有内容都是点对点的。

看起来 @pseudosudo 想要开发一个特定任务的应用程序,因此使用邮件应用程序不合适。 - Peter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接