直接在两个移动设备之间通信

10

我主要关注移动设备的一般性答案,但某些针对Android的具体方法也可以接受。

给定两个移动设备,如何在它们之间建立连接。我是移动开发的新手,不确定移动设备背后使用的是什么类型的NAT。是否可以通过一些形式的“穿洞”(使用外部服务器来帮助建立连接)将它们连接在一起?

我已经看过这篇文章,但它没有对我提供太多帮助,我仍然不知道如何获取IP和/或遍历NAT。 Android - communicating between two devices

3个回答

5
如果您想使用通用的无线模块,如GSM、UMTS和LTE等,您需要提供包含所需协议实现的独立硬件。对于GSM,您可以看看开源软件OpenBTS http://openbts.org/
作为其他通信可能性,您可以使用Wi-Fi Peer-to-Peer http://developer.android.com/guide/topics/connectivity/wifip2p.html 来建立Wi-Fi连接。
通信能力基于芯片的规格说明,不是所有的Wi-Fi都支持这种类型的连接。另一方面,您还可以建立蓝牙连接。

2

点击此链接可以了解更多无线连接设备的相关知识。

同时,您可以使用蓝牙API或套接字编程在应用程序中实现两个设备之间的通信。


1
我会让它们都连接到互联网上的服务器 - 可能是一个Web服务器 - 也许你可以从Amazon EC2实例开始。手机使用HTTP请求将消息发送到服务器,服务器使用某种描述的HTTP推送将消息发送到其他手机。Skype及其类似产品使用了一种称为UDP打洞的技术进行点对点通信(尽管通过中央服务器中介),但我相信他们不得不停止使用该技术以满足法定拦截(咳嗽NSA)的要求。

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