2014-11-14 80 views
2

我有一个应用程序的想法,但没有在这方面的Android开发或网络的经验,所以想要有一些原始的反馈,不管这是否可能。在没有服务器的2个Android手机之间传输数据?

我想在不使用服务器的情况下使用WiFi /移动网络在两个或更多Android手机之间传输文件,文本等。 也许一个设备拥有者可以发送一个特定的字符串来唯一标识该设备,即IP地址,以便与其共享数据的其他设备。

例如,A想要发送一些文件给B.他告诉B他的标识字符串是“192.168.1.1:4321”。 B现在将该字符串输入到他的设备上的应用程序中。也许这种方式可以在两个设备之间建立连接。

有两种可能的情况:

  1. A和B是彼此邻近,使他们可以访问相同的WiFi网络。
  2. A和B位于不同的地理位置,因此无论是使用移动网络还是使用不同的WiFi区域。

编辑:让我们只想说,有在该地区没有WiFi,只有其中一个设备有移动网络数据计划。该人是否可以创建一个WiFi热点,以便他可以充当伪服务器,然后其他人可以连接到此WiFi来传输数据,而无需使用唯一的ID字符串?

+4

为什么不使用:Wi-Fi直? http://developer.android.com/training/connect-devices-wirelessly/wifi-direct.html – 2014-11-14 17:41:12

+0

同意。或使用蓝牙。或者在Android Beam上使用NFC。或直接使用NFC(如果您有耐心使用者)。或者使用NFC作为自己的引导机制,通过蓝牙或WiFiDirect进行数据传输。 – CommonsWare 2014-11-14 17:42:59

+0

更新了问题 – 2014-11-14 17:45:31

回答

2

对于情景1:是的,你可以使用wifi p2p(aka wifi direct)建立一个P2P本地wifi网络进行文件传输。我看到使用此技术开发的应用程序可以在演示中共享媒体文件。它需要Android 4.0或更高版本。
对于scenario2:恐怕最简单的解决方案是让您的应用程序与服务器通话。但是,如果您要构建的这个应用程序只是个人爱好项目,则可以尝试安装FTP server,并让您的应用程序作为客户端与FTP服务器通话。这样,手机既可以作为服务器也可以作为客户端,并且根本不需要中央服务器。显然,建立起来非常困难,并且不会成为投放市场的好主意。

+0

更新了两种可能情况下的问题 – 2014-11-14 17:45:52

+0

我可以使用WiFi热点消除唯一ID字符串的需求吗?有关更多详细信息,请参阅相关修改。 – 2014-11-29 05:16:15

0

我认为在这两种情况下你都需要做端口转发。因为即使在WiFi中,数据也会通过路由器。特别是如果您处于不同的网络中。对于公共使用,你不能摆脱两个客户端可以连接的服务器,然后你可以在它们之间发送数据......否则你的应用程序的每个用户都需要转发端口...如果我错了,请纠正我的错误,但是我敢肯定...

更新: 作为DXM提到的场景1可能是可能的。但方案B每一个用户都需要转发端口...

+0

为什么某人不提供我的答案而不提供最新的错误信息,并帮助我和其他用户在未来获得更好的技术诀窍。在我看来,连接到不同网络中的其他设备是不可能的,没有前端转发或“中央服务器”。正如我在回答中所说的,如果我错了,请纠正我的错误......还提供了有关dmx答案的更新,为threadopener提供更好的反馈。完全喜欢这个...... – Mike 2014-11-17 23:36:23

+0

我没有downvote,但我现在upvoting。你能否在问题中更新你的答案进行编辑。我正在考虑是否可以使用WiFi热点来避免端口转发? – 2014-11-29 05:19:10

相关问题