Peer-to-Peer通信HolePunching(Android)

时间:2016-03-10 05:14:55

标签: android sockets p2p wifi-direct wifip2p

我正在开发一款使用Android设备之间的点对点通信的应用。它接收并传递JSON数据,数据永远不会通过服务器。该服务器仅用于跟踪用户ID,登录时间,IP更改和其他内容。这个应用程序将使用套接字进行通信。

要求

  1. JSON数据直接从另一台Android设备直接转到Android设备,无需通过服务器。
  2. Android设备可以连接到任何类型的网络,如3G或Wi-Fi(这里我假设我必须使用NAT)。
  3. 服务器用于跟踪Android设备的IP更改,因为它们可能连接到任何类型的网络。
  4. 挑战

    我面临的主要问题是:

    • 如果两个设备位于Wi-Fi网络后面,我就不知道如何连接它们。
    • 如果我打算使用P2P提供JSON数据,我可以使用哪种方法。

    更新

    为此,我必须使用打孔。我得到的想法是没有人可以从外面连接到设备。它必须从设备内部开始通信。因此,如果A请求服务器S代表B的地址,则服务器将B的地址给予A,反之亦然。怎么办?接下来会发生什么?

    任何建议都将不胜感激。

0 个答案:

没有答案