簡體   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