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

Android 在两个移动设备之间直接通信,android,mobile,nat,hole-punching,Android,Mobile,Nat,Hole Punching,我最感兴趣的是一个关于移动设备的通用答案,但是一些特定于android的东西是可以接受的 给定2台移动设备,如何在它们之间建立连接。我对移动设备的开发还不熟悉,我不确定哪种NAT移动设备落后。是否可以进行某种“打孔”(使用外部服务器来帮助建立连接)来将它们连接在一起 我已经看了这个问题,但它对我没有太大帮助,我仍然不知道如何获得IP和/或遍历NAT。 如果您想使用通用无线模块,如GSM、UMTS、LTE,则需要提供独立硬件,并实现所需的协议。对于GSM,您可以查看OpenBTS,这是一种免费软件

我最感兴趣的是一个关于移动设备的通用答案,但是一些特定于android的东西是可以接受的

给定2台移动设备,如何在它们之间建立连接。我对移动设备的开发还不熟悉,我不确定哪种NAT移动设备落后。是否可以进行某种“打孔”(使用外部服务器来帮助建立连接)来将它们连接在一起

我已经看了这个问题,但它对我没有太大帮助,我仍然不知道如何获得IP和/或遍历NAT。

如果您想使用通用无线模块,如GSM、UMTS、LTE,则需要提供独立硬件,并实现所需的协议。对于GSM,您可以查看OpenBTS,这是一种免费软件

与其他通信方式一样,您可以使用Wi-Fi点对点建立wifi连接

通信能力基于芯片规格,并非所有wi-fi都支持这种连接。另一方面,您也可以建立蓝牙连接。

参考这一条


您还可以使用蓝牙API或套接字编程在应用程序中与两台设备进行通信。

我会让它们都连接到Internet上的服务器—可能是web服务器—可能您从Amazon EC2实例开始。手机使用HTTP请求向服务器发送消息,服务器使用某种描述向其他手机发送消息。Skype及其同类产品使用了一种称为点对点通信的技术(尽管通过中央服务器进行调解),但我认为由于合法拦截(NSA)的要求,它们不得不停止