繁体   English   中英

在没有服务器的情况下在 2 部安卓手机之间传输数据?

[英]Transfer data between 2 android phones without a server?

我有一个应用程序的想法,但没有 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 字符串?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM