兩台 Android 機在同一 Wi-Fi 下互連有哪些方法?

純小白問一下這個問題,我在網上搜索,好像這個目前沒有什麼很好的辦法。。。

其實是導師要做一個app,讓我找這麼一個方案,就好象用socket/http/url編程一樣使用。。。

在網上找到一個adhoc網路,可能水平比較低,沒太明白。。。


es explorer


Wlan Direct(Wlan直連),一般都自帶


TCP/UDP協議都行。兩個手機都在wifi設置裡面關掉DHCP,設置靜態的IP。在編程裡面,利用socket向設置好的IP互傳信息。基本用不到100行代碼吧。


假如現在有兩台手機,A和B,都接在了一個wifi下面。

現在,A要與B通訊,可是A並不知道B的地址,甚至來說,A根本不知道B的存在。

第一步,A必須獲取到B的IP地址。

我們一般傳輸東西時候用tcp協議。按照教科書上說的,tcp協議會建立一個虛擬的鏈接。那麼,使用tcp的前提是你必須先知道對方的IP。比如,我們訪問一個網站的時候,必須先輸入網站的域名。顯然,用tcp是無法獲取到B的IP地址的。

那麼,有別的辦法嗎?其實是有的。

tcp的好基友,udp協議。

udp里有個玩意叫做廣播。

如果你寫的App是Android的,你可以寫一個Service,然後讓手機加入到一個廣播ip地址裡面去。

通訊的時候,讓A發送一個廣播,這樣,加入這個廣播ip的所有設備都會收到這個廣播。而這條廣播里,就可以包含A的ip地址(A當然可以獲取到自己的IP),當然也可以包括一個B的唯一標識,這樣就可以避免同一個廣播里的其他設備回應。當B收到這條廣播後,可以通過唯一標識知道呼叫的是我,也可以通過ip知道是誰呼叫的我。

這是,B就可以主動與A建立一個tcp連接。兩個人就可以搞基了。

qq:1366951595

歡迎交流。

以前做過一個智能家居的玩意,用的原理大概就是這樣~~~


tcp udp 。你想想呢些手機wifo聯機遊戲,文件近傳,還有一個wlan direct 。這些不都可以嗎???


如果你下了完整的sdk的話,google 提供的android sample中就有android直連的demo。4.4.2的demo中有個WiFiDirectDemo,可以傳輸一張圖片,然後在另一個android設備上展示出來。你可以參考參考,很快寫出一個可用的。


去我的github找到一個接linknet的項目??跟你的需求一模一樣??


我想這個項目應該就是你想要的吧!仿茄子快傳的一款文件傳輸應用, 涉及到Socket通信,包括TCP,UDP通信。(喜歡的給一個star, 有幫助的給一個fork, 歡迎Star和Fork ^_^)

下面是我項目的鏈接地址:

mayubao/KuaiChuan


ES瀏覽器啊,在同一個wifi下。可以的。


http://developer.android.com/reference/android/net/nsd/NsdManager.html

http://developer.android.com/reference/android/net/nsd/NsdServiceInfo.html

你看看可以嗎?我也不是很清楚


可以看看快牙有沒有源碼(?_?)


快牙


tcp udp隨便用


快牙


手機QQ有個類似的功能面對面快傳。還有別的APP也有類似這樣的功能,例如茄子快傳,我覺得可以先看一看這方面。


推薦閱讀:

綠色守護將迎來怎樣的變化?
如何評價 Xposed 插件「阻止運行」?
什麼是 Android 簽名機制,Bluebox Security 發現的漏洞有何威脅?
市面上大部分國行版安卓手機都不安裝谷歌框架和安卓市場,是廠家還是政府決定的?是潛規則嗎?
Kindle Fire 能夠像一般的 Android 平板一樣使用非 Amazon 內容嗎?

TAG:Wi-Fi | Android開發 | Android |