在没有服务器的2部Android手机之间传输数据?

时间:2014-11-14 17:36:43

标签: android networking tcp android-wifi

我有一个应用程序的想法但没有Android开发或网络方面的经验,所以想要有一些原始的反馈是否可行。

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

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

有两种可能的情况:

  1. A和B彼此相邻,以便他们可以访问相同的WiFi网络。
  2. A和B位于不同的地理位置,因此两者都使用移动网络或不同的WiFi区域。
  3. 编辑:让我们假设该地区没有WiFi,只有其中一个设备有移动网络数据计划。该人是否可以创建WiFi热点,以便他可以充当伪服务器,然后其他人可以连接到此WiFi以传输数据而无需使用唯一的ID字符串?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我认为在两种方式中你都需要进行端口转发。因为即使在WiFi中,数据也会通过路由器。特别是如果你在不同的网络中。对于公共使用,您无法离开两个客户端都可以连接的服务器,然后您可以在它们之间发送数据...否则,您的应用程序的每个用户都需要转发端口...如果我&#39请纠正我;我错了,但我很确定......

更新: 正如dxm提到的那样,场景1是可能的。但是场景B每个用户都需要转发端口......